Collection接口

Java集合分为Collection和Map两个体系。
1. Collection集合:

|---Collection接口:单列集合:用来存储一个一个的对象
         |---List接口:存储有序的、可重复的数据。-->“动态”数组
                 |---ArrayList、LinkedList、Vector

         |---Set接口:存储无序的,不可重复的数据。-->类似于数学的“集合”
                  |---HashSet、LinkedHashSet、TreeSet

Collection接口继承树:
在这里插入图片描述
注:JDK提供的集合API位于java.util包内。

tips:向Collection接口的实现类的对象中添加数据obj时,要求obj所在类要重写equals().

2. Collection集合中的常用方法

	Collection coll = new ArrayList();
    coll.add(123);
    coll.add(456);
    coll.add(new String("Tom"));
    coll.add(false);
    coll.add(123);//自动装箱  
    coll.add(new Date());
	Collection coll1 = Arrays.asList(123,4567);

①. add(Object e):将元素e添加到集合coll中;coll.add("AA");
②. size():获取添加的元素的个数;System.out.println(coll.size());
③. addAll(Collection coll1):将coll1集合中的元素添加到当前的集合中;coll.addAll(coll1);
④. isEmpty():判断当前集合是否为空,size是否为0;System.out.println(coll.isEmpty())
⑤. clear():清空集合元素;coll.clear();

⑥. contains(Object obj):判断当前集合中是否包含obj;

 //我们在判断时会调用obj对象所在类的equals().
        boolean contains = coll.contains(123);
        System.out.println(contains);//true

⑦. containAll(Collection coll1):判断形参coll1中所有元素是否都在当前集合中;

		Collection coll1 = Arrays.asList(123,456);
        System.out.println(coll.containsAll(coll1));//true

⑧. remove(Object obj):从当前集合中移除obj元素;

		coll.remove(123);//先判断集合中是否有123
        System.out.println(coll);//若是有,则删除

⑨. removeAll(Collection coll1):从当前集合中移除coll1中所有元素coll.removeAll(coll1);// []

⑩. equals(Object obj):要想返回true,需要当前集合和形参集合的元素都相同
hashCode():返回当前对象的哈希值;

11). 集合–>数组 :toArray();

Object[] arr = coll.toArray();
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);//遍历数组:456 /n Tom /n false
        }

12). 数组–>集合:调用Arrays类的静态方法asList();

 		List<String> list = Arrays.asList(new String[]{"AA", "BB", "CC"});
	    System.out.println(list);//[AA, BB, CC]
	    List<Object> list1 = Arrays.asList(arr);
	    System.out.println(list1);//[456, Tom, false]
	    System.out.println(arr);//[Ljava.lang.Object;@6536e911

3. 集合元素的遍历操作,使用迭代器Iterator接口
1). 内部方法:hasNext(),next();
2). 集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前;
3). 内部定义了remove(),可以在遍历的时候,删除集合中的元素,此方法不同于集合直接调用remove();

// 1).
while(iterator.hasNext()){//先看有没有,有再进入
            System.out.println(iterator.next());
        }
 //删除集合中“Tom”,  3).
        Iterator iterator = coll.iterator();
        while(iterator.hasNext()){
//            iterator.remove();  //java.lang.IllegalStateException
            Object obj = iterator.next();
            if("Tom".equals(obj)){//iterator遍历,找到就移除Tom
                iterator.remove();
            }
        }
// 2).  上一次遍历完,默认游标在第一个元素之前,再次遍历需要重新生成
 		iterator = coll.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());//已经没有Tom了
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值