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. 为什么主引导记录的内存地址是0x7C00?

    转自:http://www.ruanyifeng.com/blog/2015/09/0x7c00.html 当时,搭配的操作系统是86-DOS.这个操作系统需要的内存最少是32KB.我们知道,内存地址 ...

  2. elementUI 学习入门之 input 输入框

    基础用法 <el-input v-model="input1" palcehoder="请输入"></el-input> var Mai ...

  3. MySQL 5.7 安装完成后,首次登陆的几个问题

    Server:CentOS 7.0 MySQL : 5.7.20 MySQL Community Server (GPL) 1.首次登陆后修改密码: 根据安装时的选择不同,有mysqld_safe用m ...

  4. ssvm和console 模板机 连接不上管理节点

    说明: cloudstack 版本http://www.shapeblue.com/packages/    并不是官方的 systemvm64template-4.6.0-vmware.ova  官 ...

  5. 【十大经典数据挖掘算法】k

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 引言 k-means与kNN虽 ...

  6. Codeforces 388 D. Fox and Perfect Sets

    $ >Codeforces \space 388 D.  Fox and Perfect Sets<$ 题目大意 : 定义一个完美的集合 \(S\) ,当且仅当 \(S\) 非负非空,且 ...

  7. 【9.7校内测试】【二分+spfa】【最长上升子序列】【状压DP+贪心(?)】

    刘汝佳蓝书上的题,标程做法是从终点倒着$spfa$,我是二分答案正着$spfa$判断可不可行.效果是一样的. [注意]多组数据建边一定要清零啊QAQ!!! #include<iostream&g ...

  8. bzoj1002 生成树计数 找规律

    这道题第一眼是生成树计数,n是100,是可以用O(n^3)的求基尔霍夫矩阵的n-1阶的子矩阵的行列式求解的,但是题目中并没有说取模之类的话,就不好办了. 用高精度?有分数出现. 用辗转相除的思想,让它 ...

  9. [转]Android学习笔记:TabHost 和 FragmentTabHost

    TabHost 命名空间: android.widget.TabHost 初始化函数(必须在addTab之前调用): setup(); 包含两个子元素: 1.Tab标签容器TabWidget(@and ...

  10. 关于收到谷歌邮件 Googlebot can't access your site 的解决方法

    最近一段时间一直都收到谷歌的邮件,而且“新锐工作室”的关键字在谷歌收录及排名都没有了.下面图为谷歌蜘蛛无法抓取网站的截图,如果你在谷歌网管工具里收到类似消息,说明也中招了.[Webmaster Too ...