Collection工具类
Collection工具类:
集合工具类,定义除了存取以外的集合常用方法
方法:
- public static void reverse(List<?> list) //反转集合中元素的顺序
- public static void shuffle(List<?> list) //随机重置集合元素的顺序
- public static void
- sort(List<T> list> //升序排序(元素类型必须实现Comparable接口)
package com.java.leetcode.collection; import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; /*
Collection工具类的使用
*/
public class CColletion {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(20);
list.add(13);
list.add(1);
list.add(64);
list.add(0);
//sort排序
System.out.println("排序之前:"+list);
Collections.sort(list); //默认升序
System.out.println("排序之后:"+list);
//binarySearch 二分查找
int i = Collections.binarySearch(list,20);
System.out.println("二分查找20:"+i);
//copy
List<Integer> dest = new ArrayList<>();
for(int k=0;k<list.size();k++){
dest.add(0);//先添加0
}
Collections.copy(dest,list);//这里需要两者大小一样。所以需要在copy之前为dest指定大小。如果不指定大小,会报java.lang.IndexOutOfBoundsException。
Collections.sort(dest, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1); //自定义比较规则。此处写的降序
}
});
System.out.println("自定义比较器排序之后:"+dest);
//reverse反转
Collections.reverse(list);
System.out.println("list反转之后:"+list);
//shuffle 打乱
Collections.shuffle(list);
System.out.println("打乱之后:"+list);
//list转数组
Integer[] arr = list.toArray(new Integer[0]);
System.out.println("list转数组之后:"+ Arrays.toString(arr));
//数组转list。转后的list是一个受限集合,不能添加删除
String[] names = {"张三","李四","王二","秋萍"};
List<String> list1 = Arrays.asList(names);
//list1.add("哈哈");//此行会报UnsupportedOperationException
System.out.println("数组转list之后:"+list1); Integer[] nums = {1,50,136,0,23};
List<Integer> arr1 = Arrays.asList(nums);
System.out.println("Integer数组转集合"+Arrays.toString(nums)); int[] num = {1,5,158,0,13};
List<int []> arr2 = Arrays.asList(num);//但是这样的话,集合里的元素就不是单个数字,而是一个数组.所以不要用int,用Integer
System.out.println("int数组转集合"+Arrays.toString(num));
//将基本类型数组转成集合时,需要修改为包装类型
}
}
运行结果:

集合总结:
- 集合的概念:对象的容器,定义了对多个对象进行操作的常用方法
- List集合:有序,有下标,元素可以重复。(ArrayList,LinkedList,Vector)
- Set集合:无序,无下标,元素不可重复。(HashSet,TreeSet)
- Map集合:存储一对数据。无序,无下标,键不可重复,值可以重复。(HashMap,HashTable,TreeMap)
- Collections:集合工具类,定义除了存取以外的集合常用方法。
Collection工具类的更多相关文章
- 第29天学习打卡(迭代器、泛型 、Collection工具类、set集合的特点及应用、Map集合的特点及应用)
迭代器 对过程的重复,称为迭代. 迭代器是遍历Collection集合的通用方式,可以在对集合遍历的同时进行添加.删除等操作. 迭代器的常用方法 next():返回迭代的下一个元素对象 hasNext ...
- 集合-Collection工具类
一.概念 二.常用方法 1.Collection和Collections的区别 Collection:是创建集合的接口,Collections是一个操作Collection工具类 2.常用方法 点击查 ...
- Java集合----Collection工具类
Collections 工具类 Collections 是一个操作 Set.List 和 Map 等集合的工具类 Collections 中提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了 ...
- Guava工具类
原文链接:http://blog.csdn.net/mnmlist/article/details/53425865 Objects类 Objects类有几个比较不错的方法,toString.hash ...
- Arrays工具类与Collections工具类
Arrays工具类 : Arrays.sort():对指定数组进行排序,从小到大 Arrays.toString():返回数组的内容的字符串表示形式 Arrays.asList():数组转List,但 ...
- Java精选笔记_集合概述(Collection接口、Collections工具类、Arrays工具类)
集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速 ...
- Java基础 @org.junit.Test-单元测试方法 + 操纵Collection和Map的工具类 : Collections 的sort/binarySearch/max/min等静态方法
单元测试代码: ( 在IDEA中先输入'@Test '然后根据提示进行自动修订即可!!运行时直接运行即可! 若有多个单元测试块的时候,直接把鼠标放在哪里就自动在哪里运行那个单元块) import ...
- Java容器类Collection,List,Set,Map.,Iterator,Collections工具类,Arrays工具类,Comparable
Java容器类Collection,List,Set,Map.,Iterator,Collections工具类,Arrays工具类,Comparable接口,泛型 Collection,List,Se ...
- Java自学第6期——Collection、Map、迭代器、泛型、可变参数、集合工具类、集合数据结构、Debug
集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值. ...
随机推荐
- vue学习过程总结(02)- 网上开源项目vue-element-admin的启动
1.功能丰富的项目:https://github.com/PanJiaChen/vue-element-admin.git 因为我配置的时候,遇到许多的问题,用了一天半才启动的,所以安着他文档一步一步 ...
- P5017 [NOIP2018 普及组] 摆渡车
P5017 [NOIP2018 普及组] 摆渡车 题目 P5017 思路 将实际问题抽象后,不难发现这是一个 区间 \(DP\) 我们不妨认为时间是一条数轴,每名同学按照到达时刻分别对应数轴上可能重合 ...
- 生成树Toolkit
STP Toolkit 快速收敛: Port Fast 生成树安全: Root Guard BPDU Guard BPDU Filter Port Security 防环: Loop Guard Po ...
- SIMOTION D435-2 PN报错1915,无法进入RUN状态 解决方法
1.现象 2.解决方法 以下几种情况会导致SIMOTION D CPU无法RUN状态: 1.SIMOTION D设置CPU上电后自动进入RUN状态,上电后D4x5 CPU准备就绪,开始执行系统任务区的 ...
- 如何实现 Spring Boot 应用程序的安全性?
为了实现 Spring Boot 的安全性,我们使用 spring-boot-starter-security 依赖项,并且必须添加安全配置.它只需要很少的代码.配置类将必须扩展WebSecurity ...
- mac 修改环境变量bash_profile除了cd用不了其他命令,又关闭了终端
1.添加命令出错,会导致mac不能使用命令 2.打开终端再添加export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin 一条 3.可以使用命令, ...
- Memcache 与 Redis 的区别都有哪些?
1.存储方式 Memecache 把数据全部存在内存之中,断电后会挂掉,数据不能 超过内存大小. Redis 有部份存在硬盘上,这样能保证数据的持久性. 2.数据支持类型 Memcache 对数据类型 ...
- CKEditor禁用浏览服务器的功能
在CKeditor的config.js文件中,添加以下内容,重启服务器,图片.flash.video中的浏览服务器按钮就会消失掉 /*按下" 浏览服务器"按钮时应启动的外部文件管理 ...
- Servlet之间的关联
- osi七层模型&tcp/udp
1.TCP/UDP协议 1.1 TCP协议 可靠,速度慢,全双工通信 建立连接三次握手,断开连接四次挥手 建立起链接之后,发送每条消息都有回执,为了保证数据的完整性,还有重传机制 数据传输:有收必有发 ...