工具类1--Arrays类 总结以及集合与数组的相互转换

mac2024-04-17  37

package com.javabase.javabase.arrays; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; /** * @Author ShawnYang * @Date 2019-10-31 11:31 * @Description TODO * 修改人: * 修改时间: * 修改备注: */ public class ArraysTest { private int[] arr1 = new int[]{1, 3, 2, 4}; private int[] arr2 = new int[]{1, 3, 2, 4}; private int[] arr3 = new int[]{1, 3, 2, 4}; private Integer[] arr4 = new Integer[]{1, 3, 2, 4}; @Test public void test() { //1.boolean equals(int[] a,int[] b):判断两个数组是否相等,类似于equals 比较的是内容 boolean equals = Arrays.equals(arr1, arr2); System.out.println("1 equalsTest " + equals); //2.String toString(int[] a):输出数组信息字符串(并不是输出数组元素字符串)并且比较和arr1.toString()的区别,数组并没有重写toString方法。 System.out.println("2.1 toStringTest " + arr1); System.out.println("2.2 toStringTest " + arr1.toString()); String s = Arrays.toString(arr1); System.out.println("2.3 toStringTest " + s); //3.void fill(int[] a,int val):将指定值填充到数组之中。所有元素都被填充,不是追加 Arrays.fill(arr1, 5); System.out.println("3 fillTest " + Arrays.toString(arr1)); //4.void sort(int[] a):对数组进行排序。 Arrays.sort(arr2); System.out.println("4 fillTest " + Arrays.toString(arr2)); //5.int binarySearch(int[] a,int key) int index = Arrays.binarySearch(arr2, 3); if (index >= 0) { System.out.println("5 fillTest " + index); } else { System.out.println("5 fillTest " + "not found"); } //6. Arrays.asList 把数组装换为list,aslist 的入参是可变形参,List<T> asList(T... a),注意下面两者的区别 // 6.1当如下输入基本数据类型的集合时,aslist 把输入的数组当做1个元素的可变个数入参,所以会生成只有一个数组元素的List List<int[]> ints = Arrays.asList(arr3); System.out.println("6.1 Arrays.asListTest " + ints); // 6.2当如下输入引用数据类型的集合时,aslist 把输入的数组中的每个元素都当成一个可变元素的入参,数组中所有元素组成的List List<Integer> integers = Arrays.asList(arr4); System.out.println("6.2 Arrays.asListTest " + integers); //7.集合和数组,以及数组和集合之间的装换 //7.1 数组装换为集合 // 方法一、数组遍历后放入进新建的集合中 ArrayList<Integer> integerList = new ArrayList<>(); for (int i : arr3) { integerList.add(i); } System.out.println("7.1.1 " + integerList); // 方法二、Arrays.asList 方法 如上(略) // 方法三、Collections.addAll 方法(只能是arr4 不能是arr3 这个入参是可变形参,和6中的原因一样) ArrayList<Integer> integerList2 = new ArrayList<>(); Collections.addAll(integerList2,arr4); System.out.println("7.1.2 " + integerList2); //7.2 集合装换为数组(注意转换时的自动拆箱 // 方法一、循环遍历 int[] ints1 = new int[integerList.size()]; integerList.forEach(i -> ints1[integerList.indexOf(i)]=i); System.out.println("7.2.1 " + Arrays.toString(ints1)); // 方法二、toArray 方法 // Object[] objects = integerList.toArray(); Integer[] ts = integerList.toArray(new Integer[integerList.size()]); System.out.println("7.2.2 " +Arrays.toString(ts)); } } 1 equalsTest true 2.1 toStringTest [I@e2d56bf 2.2 toStringTest [I@e2d56bf 2.3 toStringTest [1, 3, 2, 4] 3 fillTest [5, 5, 5, 5] 4 fillTest [1, 2, 3, 4] 5 fillTest 2 6.1 Arrays.asListTest [[I@244038d0] 6.2 Arrays.asListTest [1, 3, 2, 4] 7.1.1 [1, 3, 2, 4] 7.1.2 [1, 3, 2, 4] 7.2.1 [1, 3, 2, 4] 7.2.2 [1, 3, 2, 4]

参考

最新回复(0)