java集合(7) Collections

  1. Collections是一个操作集合的工具类,在文档中有很多方法,这里这列举一些常用的,更多方法可以查阅文档
    package Collections;
    
    import java.util.ArrayList;
    import java.util.Collections;
    
    public class SearchTest {
    
        public static void main(String args[]){
    
            ArrayList arrayList = new ArrayList();
    
            arrayList.add(1);
            arrayList.add(2);
            arrayList.add(3);
            arrayList.add(4);
    
            Collections.replaceAll(arrayList, 1 ,11);
    //        replaceAll()将集合中第一个参数的全部换为第二个参数
    
    
            System.out.println(Collections.frequency(arrayList, 11));
    //        frequency()找出集合中指定元素第一次出现的下标
    
            System.out.println(arrayList);
    
            System.out.println(Collections.binarySearch(arrayList, 3));
    //        只有排序之后的结合才可以用这个binarySearch()方法(二分法)查询参数第一次出现的下标
    
    
        }
    
    }
    
    //Collections是java提供的的一个操作Set,List,Map类的工具类
    
    
    package Collections;
    
    import java.util.ArrayList;
    import java.util.Collections;
    
    
    public class SortTest {
    
        public static void main(String args[]){
    
    
            ArrayList nums = new ArrayList();
    
            nums.add(4);
            nums.add(3);
            nums.add(2);
            nums.add(1);
    
    
    
            System.out.println(nums);
    
            Collections.reverse(nums);
    //        reverse()将源集合里的元素顺序颠倒
    
            System.out.println(nums);
    
            Collections.shuffle(nums);
    //        shuffle()将源集合里的元素顺序打乱
    
            System.out.println(nums);
    
            Collections.sort(nums);
    //        sort()将集合里的元素按照自然顺序排列
    
            System.out.println(nums);
    
    
            int maxTest  = (int)Collections.max(nums);
    
            int minTest  = (int)Collections.min(nums);
    //        max()  min()分别获取集合中的最大值和最小值,结果需要拆箱成对应的数据类型
    
            System.out.println("max is " + maxTest + "," + "min is " + minTest);
    
    
            Collections.fill(nums,2);
    //        fill()将结合用指定元素填充
    
    
            System.out.println(nums);
    
    
        }
    
    
    }
    //输出结果:
    //        [4, 3, 2, 1]
    //        [1, 2, 3, 4]
    //        [2, 3, 4, 1]
    //        [1, 2, 3, 4]
    //        [2, 1, 3, 4]
    //        max is 4,min is 1
    //        [2, 2, 2, 2]
  2. Collections拥有创建线程安全的方法
    //java提供的很过集合都是线程不安全的,Collections有提供静态方法将线程不安全的集合包装成线程安全的集合
    
    
    package Collections;
    
    import java.util.*;
    
    public class SynchronizedTest {
    
        public  static void main(String args[]){
    
            Collection collection = Collections.synchronizedCollection(new ArrayList());
    
            List list = Collections.synchronizedList(new ArrayList());
    
            Set set = Collections.synchronizedSet(new HashSet());
    
            Map map = Collections.synchronizedMap(new HashMap());
    
        }
    
    
    }
    
  3. Collections拥有创建“只读模式”的集合,这些集合是不可变的
    package Collections;
    
    import java.util.*;
    
    public class UnmodifiableTest {
    
        public static void main(String args[]){
    
            List list = Collections.emptyList();
    
            Set set = Collections.singleton("java1");
    
            Map map = new HashMap();
    
            map.put("java1", "java1");
    
            map.put("java2", "java2");
    
            Map map1 = Collections.unmodifiableMap(map);
    
    //      以下操作都会引起异常
    //        map1.put("java3", "java3");
    //
    //        list.add("java3");
    //
    //        set.add("java3");
    
    
    
        }
    
    
    }
    

猜你喜欢

转载自blog.csdn.net/weixin_39452731/article/details/81410633