要点Java20 java.util.Collections
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的更多相关文章
- java.util.Collections.copy():列表List浅拷贝
今天同事问我怎样将一个列表(list1)拷贝到另一个列表(list2),然后修改新的列表(list2)不会影响到旧的列表(list1),想了一想,这是深拷贝啊. 可是,除了循环new还有别的办法吗,想 ...
- 集合-强大的集合工具类:java.util.Collections中未包含的集合工具
任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.Guava沿着这些路线提供了更多的工具方法:适用于所有集合的静态方法.这是Guava最流行和成熟 ...
- java.util.Collections.synchronizedSet()方法的使用
下面的例子显示java.util.Collections.synchronizedSet()方法的使用 package com.; import java.util.*; public class C ...
- java.util.Collections.unmodifiableMap 示例
1. 概述 public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> m) ...
- 类 java.util.Collections 提供了对Set、List、Map进行排序、填充、查找元素的辅助方法。
类 java.util.Collections 提供了对Set.List.Map进行排序.填充.查找元素的辅助方法. 1. void sort(List) //对List容器内的元素排序,排序的规 ...
- 005-guava 集合-集合工具类-java.util.Collections中未包含的集合工具[Maps,Lists,Sets],Iterables、Multisets、Multimaps、Tables
一.概述 工具类与特定集合接口的对应关系归纳如下: 集合接口 属于JDK还是Guava 对应的Guava工具类 Collection JDK Collections2:不要和java.util.Col ...
- [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具
原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...
- [Google Guava] 强大的集合工具类:java.util.Collections中未包含的集合工具
转载的,有问题请联系我 原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collecti ...
- import java.util.Collections类
Collections类提供了一些操作集合的方法 下面介绍几个方法 1.将集合变为线程安全的 三个方法分别对应了ArrayList,HashMap,HashSet: Collections.sync ...
随机推荐
- js获取URL中指定的值
function getSearchString(key) { // 获取URL中?之后的字符 var str = location.search; str = str.substring(1,str ...
- 关于在vue里使用脚手架空行、空格会报错的问题
第一种方法: 重新用脚手架安装项目,在命令行里选择Use ESLint to lint your code?这项是输入 n 第二种方法: 找到build文件夹下的 webpack.base.conf ...
- maven的认识
>>>>>>>>>> 安装完成后,设置为环境变量 命令行输入,如下图片就表明成功 >>>>>>>& ...
- react篇章-React 组件-ES6 class 来定义一个组件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...
- svm常用核函数介绍
这里有一篇博文介绍了,每个核函数的用途: https://blog.csdn.net/batuwuhanpei/article/details/52354822 在吴恩达的课上,也曾经给出过一系列的选 ...
- hdu 2433 Travel(还不会)
Problem Description One day, Tom traveled to a country named BGM. BGM is a small country, but ...
- python __str__ , __repr__区别
Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数. 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式 (如果没有等价的语法,则会 ...
- codeforce 429D. Tricky Function (思维暴力过)
题目描述 Iahub and Sorin are the best competitive programmers in their town. However, they can't both qu ...
- 51nod1380 夹克老爷的逢三抽一
问题等价于选出$n / 3$个不相邻元素是权值和最大 这是一个经典贪心问题,同种树,拿堆维护即可,复杂度$O(n \log n)$ #include <queue> #include &l ...
- 【裸裸的左偏树】BZOJ1455-罗马游戏
[题目大意] 给出一些数和一些操作.M:合并两个数所在的集合,如果有任意一个数被删除则忽略操作:K:删除某个数所在集合中最小的数. [思路] 裸裸的,复习^ ^ #include<iostrea ...