当前位置:网站首页>Arrays类的使用案例
Arrays类的使用案例
2022-04-23 14:09:00 【白马非马·】
目录
Arrays类
Arrays类常用于操作数组对象,常用功能有两个,一个是排序,一个是转化为 字符串。
1. 转化为字符串输出
一维数组输出:Arrays.toString(data)
//当数组是一维的时候:Arrays.toString(data)
int[] data=new int[]{
2,3,4,5};
System.out.println("data="+Arrays.toString(data));
//data=[2, 3, 4, 5]
多维数组输出:Arrays.deepToString(data)
//当数组是一维的时候:Arrays.toString(data)
int[]] data=new int[][]{
{
2,3,4,5},{
2,3,4},{
4,3,1}};
System.out.println("data="+Arrays.deepToString(data));
//data=[[2, 3, 4, 5], [2, 3, 4], [4, 3, 1]]
2. 排序
一整型数组为例,进行排序
2.1 一维数组排序(默认为升序):Arrays.sort(data)
int[] data=new int[]{
2,5,4,1};
Arrays.sort(data);
System.out.println("data="+Arrays.toString(data));
//data=[1, 2, 4, 5]
2.2 一维数组排序(自定义排序):Arrays.sort(data)
- 如果需要自定义数组中元素的顺序,需要对sort的比较器Comparator类中的compare方法进行重写,其中Comparator是一个匿名内部类。
//需要对比较器Comparator类中的compare方法进行重写
Integer[] data=new Integer[]{
2,5,4,1};
Arrays.sort(data,new Comparator<Integer>(){
@Override
public int compare(Integer a,Integer b){
return b-a;
}
});
System.out.println("data="+Arrays.toString(data));
//可以使用lambda表达式对匿名内部类进行简写
Integer[] data=new Integer[]{
2,5,4,1};
Arrays.sort(data,(a,b)-> b-a);
System.out.println("data="+Arrays.toString(data));
2.3 多维数组排序(自定义排序):Arrays.sort(data)
//首先根据数组第一个元素进行升序排列,
//如果相等,则根据第二个元素逆序排列
int[][] data=new int[][]{
{
3,1,2},{
3,2,3},{
1,2,3}};
Arrays.sort(data,(a,b)->{
if(a[0]==b[0]) return a[1]-b[1];
return b[0]-a[0];
});
System.out.println("data="+Arrays.deepToString(data));
//data=[[3, 1, 2], [3, 2, 3], [1, 2, 3]]
3. 数组转集合Arrays.asList()(最简单方式)
String[] string={
"2","3","a","b"};
List<String> list=new Arraylist<>(Arrays.asList(string));
list.add("3");
System.out.println("list="+lsit);
注意:
- Arrays.asList(string)是对象的方法,传入的必须是对象数组,而不是基本类型,故需要使用包装类。
- Arrays.asList(string),得到的对象是Arrays一个内部类,并不是List集合,故没有修改和添加的功能,需要把他转变为ArrayList集合。
4. (补充知识)匿名内部类(内部类)
4.1 什么是内部类:
1)定义在类中的类
4.2 内部类的作用:
1)可以访问该类定义所作用域的数据,包括private修饰的私有数据。
2)可以解决Java单继承的缺陷。
4.3 什么是匿名内部类:
1)本质上式一个没有名字的局部内部类,定义在方法中,代码块中。
2)作用:方便创建子类对象,最终目的是为了简化代码编写
3)格式如下:
Animal a=new Animal(){
public void run(){
};
5. (补充知识)Lambda表达式
- 简化函数是接口的匿名内部类写法,主要目的是用于简化代码。
- 在对Arrays.sort进行自定义排序就用到了Lambda表达式。
版权声明
本文为[白马非马·]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_42974034/article/details/124050915
边栏推荐
- mysql 5.1升级到5.611
- MYSQL 主从同步避坑版教程
- DP energy Necklace
- Gartner预测云迁移规模大幅增长;云迁移的优势是什么?
- MySQL lock database lock
- Recyclerview advanced use (II) - simple implementation of vertical drag and drop sorting
- 帆软中需要设置合计值为0时,一整行都不显示的解决办法
- 帆软之单元格部分字体变颜色
- Wechat applet communicates with esp8266 based on UDP protocol
- Research on recyclerview details - Discussion and repair of recyclerview click dislocation
猜你喜欢
利用json-server在本地创建服务器请求
RecyclerView高级使用(一)-侧滑删除的简单实现
線程組ThreadGroup使用介紹+自定義線程工廠類實現ThreadFactory接口
HyperBDR云容灾V3.2.1版本发布|支持更多云平台,新增监控告警功能
MySQL数据库讲解(八)
Indoor and outdoor map switching (indoor three-point positioning based on ibeacons)
云迁移的六大场景
Operation instructions of star boundary automatic text translator (advanced version)
关于NodeJS中JSON5的相关配置和使用
Some good articles on pthread multithreading
随机推荐
某政务云项目业务系统迁移调研实践
Wechat applet communicates with low-power Bluetooth - receives data sent by hardware (IV)
Visio installation error 1:1935 2: {XXXXXXXX
关于训练过程中损失函数出现断崖式增长的问题
Algorithem_ReverseLinkedList
Some experience of using dialogfragment and anti stepping pit experience (getactivity and getdialog are empty, cancelable is invalid, etc.)
redis数据库讲解二(redis高可用、持久化、性能管理)
帆软之单元格部分字体变颜色
服务器日志分析工具(识别,提取,合并,统计异常信息)
正则表达式
帆软中使用if else 进行判断-使用标题条件进行判断
在MAC上安装mysql
云容灾是什么意思?云容灾和传统容灾的区别?
01-nio basic ByteBuffer and filechannel
mysql 5.1升级到5.68
Request module
On September 8, the night before going to Songshan Lake
MYSQL 主从同步避坑版教程
Research on recyclerview details - Discussion and repair of recyclerview click dislocation
如何快速批量创建文本文档?