标签:style io os ar 使用 java sp on cti
Set接口是Collection接口的子接口,Set接口中不能插入重复元素
Set接口的常用子类:
HashSet是set接口的一个子类,特点:里面不能存放重复元素,而且采用散列的存储方式,所以没有顺序。
Treeset也是set接口的一个子类,特点:里面不能存放重复元素,并且是有序存放
TreeSet是有序存放的,所以需要制定好排序规则,TreeSet中每个对象所在的类都必须实现Compatable接口才可以正常使用;
packageleiji;
publicclass Person implements Comparable<Person> {
private String name;
private int age;
public Person (String name,int age){
this.name=name;
this.age=age;
}
public String toString(){ //覆写toString方法
return"姓名:"+name+";年龄:"+age;
}
public int compareTo(Person per){ //覆写compareTo方法
if(this.age>per.age){
return 1;
}
else if(this.age<per.age){
return -1;
}
else{
return this.name.compareTo(per.name) ;
}
}
}
packageleiji;
publicclass Personal {
private String name;
private int age;
public Personal (String name,int age){
this.name=name;
this.age=age;
}
public String toString(){ //覆写toString方法
return"姓名:"+name+";年龄:"+age;
}
public boolean equals(Object obj){ //覆写equals方法
if(this==obj){ //判断是不是同一个对象
return true;
}
if (!(obj instanceofPersonal)){ //判断是不是同一个类
return false;
}
Personalp=(Personal)obj; //进行向下转型
if(this.name.equals(p.name) && this.age==p.age){ //
return true;
}else{
return false;
}
}
public int hashCode(){ //覆写hashCode函数
returnthis.name.hashCode()*this.age; //指定编码格式
}
}
packageleiji;
importjava.util.Set;
importjava.util.HashSet;
importjava.util.TreeSet;
publicclass Sett {
public static void main(String args[]){
Set<String> allset=new HashSet<String>();
allset.add("A");
allset.add("M");
allset.add("D");
allset.add("F");
allset.add("F");
System.out.println(allset);
Set<String> sortset=new TreeSet<String>();
sortset.add("F");
sortset.add("M");
sortset.add("A");
sortset.add("d");
System.out.println(sortset);
//运用自定义的类对象作为元素
Set<Person> alls=new TreeSet<Person>();
alls.add(new Person("张三",30));
alls.add(new Person("张三",32));
alls.add(new Person("张三",30));
alls.add(new Person("李四",30));
System.out.println(alls);
//运用自定义类Personal作为元素 实现HashSet去重功能
Set<Personal> allse=new HashSet<Personal>();
allse.add(new Personal("张三",30));
allse.add(new Personal("李四",30));
allse.add(new Personal("张三",30));
allse.add(new Personal("赵六",30));
allse.add(new Personal("徐峥",30));
System.out.println(allse);
}
}
//一个好的object类最好覆写Object类的HashCode() equals() toString() 三个方法
标签:style io os ar 使用 java sp on cti
原文地址:http://blog.csdn.net/goodhuajun/article/details/40648533