集合详解—Collection接口

Collection接口

Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合。
JDK不提供此接口的任何直接实现,而是提供更具体的子接口(如:Set和List)实现。
在 Java5 之前,Java 集合会丢失容器中所有对象的数据类型,把所有对象都当成 Object 类型处理;从 JDK 5.0 增加了泛型以后,Java 集合可以记住容器中对象的数据类型。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aL7PjPTe-1614868115130)(assets/image-20210212111441388.png)]

Collection接口方法

1、添加

​ boolean add(Object obj)

​ boolean addAll(Colllection c)

2、获取有效元素的个数

​ int size()

3、清空集合

​ void clear()

4、是否是空集合

​ boolean isEmpty()

5、是否包含某个元素

​ boolean contains(Object obj) 是通过元素的equals()方法来判断是否是同一个对象

​ boolean containsAll(Collection c) 是调用元素的equals()方法来比较,拿两个集合的元素挨个比较

6、删除

​ boolean remove(Object obj) 通过元素的equals()方法判断是否是要删除的那个元素,只会删除找到的第一个元素

​ boolean removeAll(Collection c) 取当前集合的差集

7、取两个集合的交集

​ boolean retainAll(Collection c) 把交集的结果存在当前集合中,不影响集合c

8、集合是否相等

​ boolean equals(Object obj)

9、转成对象数组

​ Object[] toArray()

10、获取集合对象的哈希值

​ int hashCode()

11、遍历

​ Iterator iterator() 返回迭代器对象,用于遍历集合

案例:

public class CollectionTest {
    
    

    @Test
    public void test1(){
    
    
        Collection coll = new ArrayList();
        coll.add(123);
        coll.add(456);
//        Person p = new Person("Jerry",20);
//        coll.add(p);
        coll.add(new Person("Jerry",20));
        coll.add(new String("Tom"));
        coll.add(false);
        //1.contains(Object obj):判断当前集合中是否包含obj
        //我们在判断时会调用obj对象所在类的equals()。
        boolean contains = coll.contains(123);
        System.out.println(contains);
        System.out.println(coll.contains(new String("Tom")));
//        System.out.println(coll.contains(p));//true
        System.out.println(coll.contains(new Person("Jerry",20)));//false -->true

        //2.containsAll(Collection coll1):判断形参coll1中的所有元素是否都存在于当前集合中。
        Collection coll1 = Arrays.asList(123,4567);
        System.out.println(coll.containsAll(coll1));
    }

    @Test
    public void test2(){
    
    
        //3.remove(Object obj):从当前集合中移除obj元素。
        Collection coll = new ArrayList();
        coll.add(123);
        coll.add(456);
        coll.add(new Person("Jerry",20));
        coll.add(new String("Tom"));
        coll.add(false);

        coll.remove(1234);
        System.out.println(coll);

        coll.remove(new Person("Jerry",20));
        System.out.println(coll);

        //4. removeAll(Collection coll1):差集:从当前集合中移除coll1中所有的元素。
        Collection coll1 = Arrays.asList(123,456);
        coll.removeAll(coll1);
        System.out.println(coll);


    }

    @Test
    public void test3(){
    
    
        Collection coll = new ArrayList();
        coll.add(123);
        coll.add(456);
        coll.add(new Person("Jerry",20));
        coll.add(new String("Tom"));
        coll.add(false);

        //5.retainAll(Collection coll1):交集:获取当前集合和coll1集合的交集,并返回给当前集合
//        Collection coll1 = Arrays.asList(123,456,789);
//        coll.retainAll(coll1);
//        System.out.println(coll);

        //6.equals(Object obj):要想返回true,需要当前集合和形参集合的元素都相同。
        Collection coll1 = new ArrayList();
        coll1.add(456);
        coll1.add(123);
        coll1.add(new Person("Jerry",20));
        coll1.add(new String("Tom"));
        coll1.add(false);

        System.out.println(coll.equals(coll1));


    }

    @Test
    public void test4(){
    
    
        Collection coll = new ArrayList();
        coll.add(123);
        coll.add(456);
        coll.add(new Person("Jerry",20));
        coll.add(new String("Tom"));
        coll.add(false);

        //7.hashCode():返回当前对象的哈希值
        System.out.println(coll.hashCode());

        //8.集合 --->数组:toArray()
        Object[] arr = coll.toArray();
        for(int i = 0;i < arr.length;i++){
    
    
            System.out.println(arr[i]);
        }

        //拓展:数组 --->集合:调用Arrays类的静态方法asList()
        List<String> list = Arrays.asList(new String[]{
    
    "AA", "BB", "CC"});
        System.out.println(list);

        List arr1 = Arrays.asList(new int[]{
    
    123, 456});
        System.out.println(arr1.size());//1

        List arr2 = Arrays.asList(new Integer[]{
    
    123, 456});
        System.out.println(arr2.size());//2

        //9.iterator():返回Iterator接口的实例,用于遍历集合元素。放在IteratorTest.java中测试

    }
}

猜你喜欢

转载自blog.csdn.net/qq_44346427/article/details/110729377