java.util.Collections 集合帮助类

演示样例程序(JUnit演示)

排序

    @Test
public void testSort() {
List<Integer> demoList = new ArrayList<Integer>(Arrays.asList(3, 2, 1));
assertEquals(3, demoList.get(0).intValue()); //public static <T extends Comparable<? super T>> void sort(List<T> list)
Collections.sort(demoList); assertEquals(1, demoList.get(0).intValue()); //public static void shuffle(List<? > list) // 随机排序
//public static void reverse(List<? > list) // 反序
}

查找

    @Test
public void testBinarySearch() {
List<Integer> demoList = new ArrayList<Integer>(Arrays.asList(3, 2, 1));
//必须先排序
Collections.sort(demoList);
assertEquals(1, demoList.get(0).intValue()); //二分查找位置
//public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
assertEquals(0, Collections.binarySearch(demoList, 1)); //public static int indexOfSubList(List<? > source, List<?> target)
// public static int lastIndexOfSubList(List<?> source, List<?> target)
}

置换

    @Test
public void testSwap() {
List<Integer> demoList = new ArrayList<Integer>(Arrays.asList(3, 2, 1)); //public static void swap(List<? > list, int i, int j)
Collections.swap(demoList, 0, 2);
assertEquals(1, demoList.get(0).intValue());
//public static void rotate(List<?> list, int distance) //指定距离轮换
//public static <T> boolean replaceAll(List<T> list, T oldVal, T newVal) //指定替换
}

拷贝

    @Test
public void testCopy() {
List<Integer> demoList = new ArrayList<Integer>(Arrays.asList(3, 2, 1)); //public static <T> void copy(List<? super T> dest, List<? extends T> src)
//注意目的List的size最少要等于src的size
List<Integer> copyList = new ArrayList<Integer>(Arrays.asList(1, 2, 3));
Collections.copy(copyList, demoList);
assertEquals(3, copyList.size());
assertEquals(3, copyList.get(0).intValue()); copyList.add(4);
assertEquals(3, demoList.size());
}

比較

    @Test
public void testCompary() {
List<Integer> demoList = new ArrayList<Integer>(Arrays.asList(3, 2, 1));
assertEquals(1, Collections.min(demoList).intValue());
assertEquals(3, Collections.max(demoList).intValue()); List<Integer> compareList = new ArrayList<Integer>(Arrays.asList(5, 6, 7));
//Returns true if the two specified collections have no elements in common
assertTrue(Collections.disjoint(demoList, compareList));
}

创造不同的集合

    @SuppressWarnings("unused")
@Test
public void testCreate() {
List<Integer> demoList = new ArrayList<Integer>(Arrays.asList(3, 2, 1)); //空对象 size=0 无加入方法
List<Integer> emptyList = Collections.emptyList(); //返回一个仅仅包括指定对象的不可变列表。
List<Integer> singletonList = Collections.singletonList(1); //返回指定列表的一个动态类型安全视图。
List<Integer> checkedList = Collections.checkedList(demoList, Integer.class); //返回指定列表的不可改动视图。
List<Integer> unmodifiableList = Collections.unmodifiableList(demoList); //返回指定列表支持的同步(线程安全的)列表。
List<Integer> synchronizedList = Collections.synchronizedList(demoList); synchronized (synchronizedList) {
Iterator<Integer> i = synchronizedList.iterator(); // Must be in synchronized block
while (i.hasNext())
i.next();
} //map set sortedMap sortedSet
}

环境 jdk1.6 window7 junit4

要点Java20 java.util.Collections的更多相关文章

  1. java.util.Collections.copy():列表List浅拷贝

    今天同事问我怎样将一个列表(list1)拷贝到另一个列表(list2),然后修改新的列表(list2)不会影响到旧的列表(list1),想了一想,这是深拷贝啊. 可是,除了循环new还有别的办法吗,想 ...

  2. 集合-强大的集合工具类:java.util.Collections中未包含的集合工具

    任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.Guava沿着这些路线提供了更多的工具方法:适用于所有集合的静态方法.这是Guava最流行和成熟 ...

  3. java.util.Collections.synchronizedSet()方法的使用

    下面的例子显示java.util.Collections.synchronizedSet()方法的使用 package com.; import java.util.*; public class C ...

  4. java.util.Collections.unmodifiableMap 示例

    1. 概述 public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> m) ...

  5. 类 java.util.Collections 提供了对Set、List、Map进行排序、填充、查找元素的辅助方法。

      类 java.util.Collections 提供了对Set.List.Map进行排序.填充.查找元素的辅助方法. 1. void sort(List) //对List容器内的元素排序,排序的规 ...

  6. 005-guava 集合-集合工具类-java.util.Collections中未包含的集合工具[Maps,Lists,Sets],Iterables、Multisets、Multimaps、Tables

    一.概述 工具类与特定集合接口的对应关系归纳如下: 集合接口 属于JDK还是Guava 对应的Guava工具类 Collection JDK Collections2:不要和java.util.Col ...

  7. [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具

    原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...

  8. [Google Guava] 强大的集合工具类:java.util.Collections中未包含的集合工具

    转载的,有问题请联系我 原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collecti ...

  9. import java.util.Collections类

    Collections类提供了一些操作集合的方法  下面介绍几个方法 1.将集合变为线程安全的 三个方法分别对应了ArrayList,HashMap,HashSet: Collections.sync ...

随机推荐

  1. js获取URL中指定的值

    function getSearchString(key) { // 获取URL中?之后的字符 var str = location.search; str = str.substring(1,str ...

  2. 关于在vue里使用脚手架空行、空格会报错的问题

    第一种方法: 重新用脚手架安装项目,在命令行里选择Use ESLint to lint your code?这项是输入  n 第二种方法: 找到build文件夹下的 webpack.base.conf ...

  3. maven的认识

    >>>>>>>>>> 安装完成后,设置为环境变量 命令行输入,如下图片就表明成功 >>>>>>>& ...

  4. react篇章-React 组件-ES6 class 来定义一个组件

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...

  5. svm常用核函数介绍

    这里有一篇博文介绍了,每个核函数的用途: https://blog.csdn.net/batuwuhanpei/article/details/52354822 在吴恩达的课上,也曾经给出过一系列的选 ...

  6. hdu 2433 Travel(还不会)

    Problem Description       One day, Tom traveled to a country named BGM. BGM is a small country, but ...

  7. python __str__ , __repr__区别

    Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数. 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式 (如果没有等价的语法,则会 ...

  8. codeforce 429D. Tricky Function (思维暴力过)

    题目描述 Iahub and Sorin are the best competitive programmers in their town. However, they can't both qu ...

  9. 51nod1380 夹克老爷的逢三抽一

    问题等价于选出$n / 3$个不相邻元素是权值和最大 这是一个经典贪心问题,同种树,拿堆维护即可,复杂度$O(n \log n)$ #include <queue> #include &l ...

  10. 【裸裸的左偏树】BZOJ1455-罗马游戏

    [题目大意] 给出一些数和一些操作.M:合并两个数所在的集合,如果有任意一个数被删除则忽略操作:K:删除某个数所在集合中最小的数. [思路] 裸裸的,复习^ ^ #include<iostrea ...