0
点赞
收藏
分享

微信扫一扫

Arrays类的使用案例

律楷粑粑 2022-04-13 阅读 58
java

目录

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. 匿名内部类(内部类)

3.1 什么是内部类:

1)定义在类中的类

3.2 内部类的作用:

1)可以访问该类定义所作用域的数据,包括private修饰的私有数据。
2)可以解决Java单继承的缺陷。

3.1 什么是匿名内部类:

1)本质上式一个没有名字的局部内部类,定义在方法中,代码块中。
2)作用:方便创建子类对象,最终目的是为了简化代码编写
3)格式如下:

Animal a=new Animal(){
public void run(){
};

4. Lambda表达式

  • 简化函数是接口的匿名内部类写法,主要目的是用于简化代码。
  • 在对Arrays.sort进行自定义排序就用到了Lambda表达式。
举报

相关推荐

0 条评论