Collection类方法详解____(四)判断和赋值等

1、disjoint(Collection<?> c1,Collection<?> c2);

        比较集合c1和集合c2之间有没有共同的元素,有就返回true,反之返回false

public class CollectionsDome3 {
    public static void main(String[] args) {
        ArrayList<Integer> c1 = new ArrayList<Integer>(Arrays.asList(2,4,6,8,9,6));
        ArrayList<Integer> c2 = new ArrayList<Integer>(Arrays.asList(1));
        boolean flge = Collections.disjoint(c1 , c2);
        System.out.println(flge);  //输出的是true
    }
}

2、addAll(Collection<? super T> c,T...a)

                     将指定集合添加到集合c中,T...a表示可变参数,a相当于数组

public class CollectionsDome3 {
    public static void main(String[] args) {
        ArrayList<Integer> c1 = new ArrayList<Integer>(Arrays.asList(2,4,6,8,9,6));
        Collections.addAll(c1,2,3,5,7,8,9);
        System.out.println(c1);
    }
}

3、copy(List  m,List  n)

         将n中元素赋值到m中。

public class CollectionsDome3 {
    public static void main(String[] args) {
        ArrayList<Integer> c1 = new ArrayList<Integer>(Arrays.asList(2,4,6,8,9,6));
        ArrayList<Integer> c2 = new ArrayList<Integer>(Arrays.asList(1));
        Collections.copy(c1,c2);//将c2的值赋值给c1,从首尾开始覆盖   c2.size()<=c1.size()
        System.out.println(c1);//[1, 4, 6, 8, 9, 6]
        System.out.println(c2);//[1]
    }
}

4、checkedXxx()

          查看这个集合是不是Xxx集合类型。

     例如:   checkedCollection(Collection   c,class   o.class)

           c、表示在运行时为其获取类型安全视图的集合。o、表示允许给定集合存储的元素类型。

这个命令是为了返回指定集合的动态安全视图

        以下其他方法创建方式和这个相同

public class CollectionsDome3 {
    public static void main(String[] args) {
        Collection c3=new ArrayList();
         c3.add(1);
         c3.add("df");
        Collection<Student> strings =  Collections.checkedCollection(c3 ,Integer.class);
         c3.add("dddd");
        System.out.println(c3);//[1, df, dddd] 
        System.out.println(strings);//[1, df, dddd]  strings集合不可以改变
    }
}
checked解释
checkedList(List   c,class   o.class)   List集合,返回动态安全视图
checkedMap(Mapn   c,class   o.class)   Map集合,返回动态安全视图
checkedNavigableMap(NavigableMap  c,class   o.class)   NavigableMap集合,返回动态安全视图
checkedNavigableSet(NavigableSet   c,class   o.class)   NavigableSet集合,返回动态安全视图
checkedQueue(Queue  c,class   o.class)   Queue集合,返回动态安全视图
checkedSet(Set   c,class   o.class)   Set集合,返回动态安全视图
checkedSortedMap(SortedMap  c,class   o.class)   SortedMap集合,返回动态安全视图
checkedSortedSet(SortedSet   c,class   o.class)   SortedSet集合,返回动态安全视图

5、asLifoQueue(Deque    deque);

                将双端队列(先进先出,队列满,则首段优先退出)表示为Lifo队列(LIFO表示后进先出)

          

public class CollectionsDome3 {
    public static void main(String[] args) {
        Deque<Integer> queue=new ArrayDeque<Integer>();//双端队列,先进先出
        queue.add(1);queue.add(2);
        System.out.println(queue);//输出[1,2]
//        Deque转换成Queue队列
        Queue<Integer> i = Collections.asLifoQueue(queue);//Lifo队列,先进后出
        System.out.println(i);

    }
}

6、list(Enumeration  en);

            返回一个数组,该列表包含给定Enumeration (枚举)返回的所有元素,以及将这些元素按枚举返回的顺序存储在ArrayList中的方法。

package cn.cm;

import java.util.*;

public class Peal {
    public static void main(String args[]) {
        // Instantiate an ArrayList and
        // Stack object
        List arr_l = new ArrayList();
        Stack st = new Stack();//栈队列,后进先出
        // By using push() method is
        // to add elements in stack
        st.push(10);//存入元素
        st.push(20);
        st.push(30);
        st.push(40);
        st.push(50);
        System.out.println(st.pop());//输出50,拿出这个元素,集合中就没有这个元素了
        System.out.println(st.pop());//输出40,拿出这个元素,集合中就没有这个元素了
        System.out.println(st.pop());//输出30,拿出这个元素,集合中就没有这个元素了
        System.out.println(st);//st集合中只剩下【10,20】
        // Get elements in an enumeration object
        Enumeration en = st.elements();// 创建枚举类型对象
        System.out.println(en.nextElement());//拿出1个元素10
        // By using list() method is to
        // return the array list of the
        // given enumeration object
        ArrayList arr_1 = Collections.list(en);// 将en枚举剩下的元素的返回元素存在arr_1中
                                                 //只剩下[20]
        System.out.println("Collections.list(en): " + arr_1);//输出[20]
    }
}

7、singleton(),singletonMap()、singletonList()  

          这些都是单列模式,只有一个元素。

     通过Collection.singleton(sc)创建一个单列模式元素,依次是Set型,Map型,List型。

public class Sidjsn extends Student {
    public static void main(String[] args) {
        List sc=new ArrayList(Arrays.asList(1,2,4,5));
        List sc1=new ArrayList(Arrays.asList(1,2,4,6));
        Set<List> s = Collections.singleton(sc);
        System.out.println(s); // [[1, 2, 4, 5]]
//        s.add(sc);   赋值不了,s只是一个单例模式,只能有一个元素
        
        List<List> s1 = Collections.singletonList(sc);
        System.out.println(s1);// [[1, 2, 4, 5]]
        
        Map<Integer, List> s2 = Collections.singletonMap(1 , sc);
        System.out.println(s2);//        System.out.println(s2);//
        System.out.println(sc);  // [1, 2, 4, 5]
    }
}


版权声明:本文为abcdef_12a原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。