Collection
- list
- set
- 父类Collection有自己的方法,list拥有自己的方法,Set拥有自己的方法
Collection接口方法
- Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合。
例1:常用方法
public static void main(String[] args) {
Collection coll=new ArrayList();
//add():将e添加到集合中
coll.add("AA");
coll.add("BB");
coll.add(123);
coll.add(new Date());
//size()
System.out.println(coll.size());
//addAll():将coll集合元素添加到当前集合
Collection coll1=new ArrayList();
coll1.add("章");
coll1.add(456);
coll.addAll(coll1);
System.out.println(coll.size());//6
System.out.println(coll);
//isEmpty()判空
boolean empty = coll.isEmpty();
System.out.println(empty);
//contains():当前对象是否包含该对象
boolean result = coll.contains(123);
System.out.println(result);
//remove:删除该对象
coll.remove(123);
System.out.println(coll);
//removeAll()移除共有元素,即求差集
coll.removeAll(coll1);
System.out.println(coll);
//retainall()求交集,修改原有集合
//equals(),当前集合与形参是否相当
//hashCAode(),返回当前对象的哈希值
System.out.println(coll.hashCode());
//toArray(),集合转换为数组
Object[] arr = coll.toArray();
for(Object x:arr) {
System.out.println(x);
//数组——>集合:调用Arrays的静态方法
List<String> list = Arrays.asList(new String[] {"aa","bb"});
例2:遍历操作
ArrayList aList = new ArrayList();
//数据添加。。。。。。
//遍历:方式一
Iterator it=aList.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
//方式二
for(Object o:aList) {
System.out.println(o);
}
//方式三
for(int i=0;i<aList.size();i++) {
System.out.println(aList.get(i));
}
Iterator迭代器
- Iterator对象称为迭代器(设计模式的一种),主要用于遍历** Collection** 集合中的元素
- 集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前
迭代器的使用
Iterator iter = coll.iterator();//回到起点
while(iter.hasNext()){
Object obj = iter.next();
if(obj.equals("Tom")){
iter.remove();
}
}
List
- ArrayList主要实现类,本质时一个引用的变长数组
- LinkedList:适用于频繁的插入删除操作
- Vector:古老实现类,线程安全
ArrayList
LinkedList
三者区别联系
Set
-
Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个Set 集合中,则添加操作失败
-
Set 判断两个对象是否相同不是使用 == 运算符,而是根据 equals() 方法
-
**自己创建的类,放入Set集合中必须重写equals于hashcode方法
equals:比较对象地址
hashcode:返回对象的散列值 -
主要实现类
-
HashSet:1.Set接口的主要实现;2.不能保证元素顺序 3.非线程安全
-
LinkedhashSet
-
TreeSet:1.TreeSet 可以确保集合元素处于排序状态。2.TreeSet底层 使用 红黑树结构存储数据。3.TreeSet 两种排序方法: 自然排序和 定制排序。默认情况下,TreeSet 采用自然排序。(具体实现见排序)
-