Collection主要的子接口:
List:可以存放重复内容Set:不能存放重复内容,所有重复的内容靠hashCode()和equals()两个方法区分Queue:队列接口SortedSet:可以对集合中的数据进行排序
List接口: 总结了List接口的扩展方法,即包含有增删改查方法.
List接口常用的子类: ArrayList:可以直接通过对象的多态性为List接口实例化. Vector:算是元老级的类,使用差别不大 LinkedList:表示链表的操作类,同时实现List接口和Queue接口
Set接口:
Set接口常用的子类: HashSet:不能存放重复元素,而且采用散列的存储方式,所以没有顺序 TreeSet:不能存放重复元素,但对输入的数据进行有序排列(实现了SZ??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcnRlZFNldL3Tv9opCjxicj4KCjxicj4KCta4tqjFxdDyOgo8cHJlIGNsYXNzPQ=="brush:java;">class Person implements Comparable
{ private String name ; private int age ; public Person(String name,int age){ this.name = name ; this.age = age ; } public String toString(){ return "姓名:" + this.name + ";年龄:" + this.age ; } public int compareTo(Person per){ if(this.age>per.age){ return 1 ; }else if(this.age
allSet = new TreeSet
() ; allSet.add(new Person("张三",30)) ; allSet.add(new Person("李四",31)) ; allSet.add(new Person("王五",32)) ; allSet.add(new Person("王五",32)) ; allSet.add(new Person("王五",32)) ; allSet.add(new Person("赵六",33)) ; allSet.add(new Person("孙七",33)) ; System.out.println(allSet) ; } }; 运行结果: [姓名:张三;年龄:30, 姓名:李四;年龄:31, 姓名:王五;年龄:32, 姓名:孙七;年龄:33, 姓名:赵六;年龄:33]
去重复元素:
class Person{
private String name ;
private int age ;
public Person(String name,int age){
this.name = name ;
this.age = age ;
}
public boolean equals(Object obj){ // 覆写equals,完成对象比较
if(this==obj){
return true ;
}
if(!(obj instanceof Person)){
return false ;
}
Person p = (Person)obj ; // 向下转型
if(this.name.equals(p.name)&&this.age==p.age){
return true ;
}else{
return false ;
}
}
public int hashCode(){
return this.name.hashCode() * this.age ; // 定义一个公式
}
public String toString(){
return "姓名:" + this.name + ";年龄:" + this.age ;
}
};
public class RepeatDemo{
public static void main(String args[]){
Set
allSet = new HashSet
() ; allSet.add(new Person("张三",30)) ; allSet.add(new Person("李四",31)) ; allSet.add(new Person("王五",32)) ; allSet.add(new Person("王五",32)) ; allSet.add(new Person("王五",32)) ; allSet.add(new Person("赵六",33)) ; allSet.add(new Person("孙七",33)) ; System.out.println(allSet) ; } };
运行结果: [姓名:李四;年龄:31, 姓名:张三;年龄:30, 姓名:孙七;年龄:33, 姓名:王五;年龄:32, 姓名:赵六;年龄:33]
Queue接口: 队列操作接口
SortedSet接口:
|