Collection
接口: Set List Map
实现类:HashSet ArrayList LinkedList HashMap Hashtable
Set与List:
Set中一个对象只能放一次,不能重复。无序
List中一个对象可以放多次,可以重复。有序
HashSet与TreeSet:
ArrayList与LinkedList:
ArrayList:数组结构,适合查询,常用方法:add、get、size、isEmpty、toArray
LinkedList:链路结构,适合插入与删除。
(Set、List)与Map:
(Set、List):数据是一个整体对象。
Map:key与value,键值对
HashMap与Hashtable:
HashMap:key与value可以是null,没有实现线程同步(StringBulider)。
Hashtable:key与value不能为空,实现了线程同步(StringBuffer)。
泛型:指定容器类所要指定的数据类型。例如:
Collection<String> coll=new ArrayList<String>();指定了ArrayList中只能装Sting数据类型的数据,不能放其他的。
Comparator与Comparable:
1、对象不能直接比较大小
2、要对对象比较大小,我们只能比较对象可以比较的属性
3、实现对象比较的两种方式:a:在定义类的时候实现Comparable接口里面的compareTo(object o)方法。(在方法中实现属性大小的比较)b:直接写一个比较器类,实现Comparator接口中的compare(Object o1 ,Object o2)的方法。(在方法中实现属性大小的比较)。
那么,什么时候用Comparable,什么时候用Comparator?
答:1、在类设计的时候(写类的时候)用Comparable,就是说你设计的时候就要进行比较。
2、在类写好的时候,不能修改里面的比较逻辑,需要临时的使用另外的比较大小方式,单独的写Comparator (比较器),就是说突然要对某个对象的属性进行比较。
迭代器:
HashSet:iterator
HashSet set=new HashSet();
Iterator itor=set.iterator(); for(Iteratoritor=set.iterator();itor.hasNext();)
While(itor.hasNext()){ {
String str=(String)Itor.next();} Stringstr=(String)Itor.next();}
要比较不是默认的对象比较,要用比较器。例如我们不是比较数字、字母或其他的大小,而是比较年龄、名字等,我们可以用比较器进行比较。
Map.Entry对象里面封装了key与value,因此你可以用getKey与getValue的方法来获得里面的key与value值。