欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 操作集合的工具类:Collections(以及将线程变安全的synchronized方法)

操作集合的工具类:Collections(以及将线程变安全的synchronized方法)

2025/2/22 16:48:17 来源:https://blog.csdn.net/ABU009/article/details/141200847  浏览:    关键词:操作集合的工具类:Collections(以及将线程变安全的synchronized方法)

   静态成员方法:
        public static <T> void sort(List<T> list) 升序
        public static <T> int binarySearch(List<?> list,T key) 二分查找
        public static <T> T max(Collection<?> coll)找最大值
        public static void reverse(List<?> list)反转
        public static void shuffle(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集合是安全的了。}
}

2、可以将不安全的集合变成安全的

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) 
返回由指定集合支持的同步(线程安全)集。  

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词