集合的工具类:Collections day15

package com.shujia.day15;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/*
    java提供了专门操作集合的工具类:Collections

    静态成员方法:
        public static <T> void sort(List<T> list)               对List集合进行升序排序
        public static <T> int binarySearch(List<?> list,T key)  在针对List集合中二分查找某个元素,返回该元素的下标索引
        public static <T> T max(Collection<?> coll)
        public static void reverse(List<?> list)                将集合元素反转
        public static void shuffle(List<?> list)                将List集合元素进行随机打乱,每次运行结果都不一样

 */
public class CollectionsDemo {
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>();
        list1.add("hello");
        list1.add("world");
        list1.add("hadoop");
        list1.add("apple");
        System.out.println("list1: "+list1);
        System.out.println("--------------------------");
//
//        Collections.sort(list1);  //对List集合进行升序排序
//        System.out.println("list1: "+list1);
//
//        //list1: [apple, hadoop, hello, world]
//        //public static <T> int binarySearch(List<?> list,T key) 在针对List集合中二分查找某个元素,返回该元素的下标索引
//        System.out.println(Collections.binarySearch(list1,"hello"));
//
//        //public static <T> T max(Collection<?> coll)
//        System.out.println(Collections.max(list1));
//
//        //public static void reverse(List<?> list) 将集合元素反转
//        Collections.reverse(list1);
//        System.out.println("list1: "+list1);

        //public static void shuffle(List<?> list) 将List集合元素进行随机打乱,每次运行结果都不一样
//        Collections.shuffle(list1);
//        System.out.println("list1: "+list1);


        //即便Vector是线程安全的,我们今后也不用
        //原因是我们可以通过Collections工具类对ArrayList或其他不安全的集合做操作,变成安全的。
        List<String> list2 = Collections.synchronizedList(list1);
        //后续用list2,跟不安全的用法一毛一样,没有任何区别,只是后续这个List集合是安全的了。



    }
}

将不安全的集合转为安全的

static <T> Collection<T> synchronizedCollection(Collection<T> c) 
返回由指定集合支持的同步(线程安全)集合。
  
static <T> List<T> synchronizedList(List<T> list) 
返回由指定列表支持的同步(线程安全)列表。  
 
static <K,V> Map<K,V> synchronizedMap(Map<K,V> m) 
返回由指定地图支持的同步(线程安全)映射。  
 
static <T> Set<T> synchronizedSet(Set<T> s) 
返回由指定集合支持的同步(线程安全)集。 

        boolean addAll(Collection c)将直接添加另一个集合中所有单元素
        boolean removeAll(Collection c)从一个集合中移除另一个集合中所有的元素
        boolean containsAll(Collection c)判断A集合中是否包含B集合所有元素
        boolean retainAll(Collection c)A集合与B集合做交集,重复的部分覆盖到A集合中,B集合不变
Object[] toArray() 转数组
Iterator iterator() 迭代器 
posted @ 2024-08-14 16:15  ていせい  阅读(6)  评论(0)    收藏  举报