1.Arrays.asList( )
Arrays.asList() 是 Java 标准库中的一个静态方法,用于将数组转换为 List
参数:asList(T… a)
返回值:一个列表
public void asListTest() {
List<String> ss = Arrays.asList("hello", "world");
// List<String> ss1 = Arrays.asList("hello", "world",1); 报错,类型必须一直(泛型)
System.out.println(ss); //[hello, world]
// ss.add("java"); //UnsupportedOperationException 会报错
// ss.remove(1); //UnsupportedOperationException 会报错
System.out.println(ss.get(0)); //hello
ss.set(0, "java");
System.out.println(ss); //[java, world]
}
将数组转换为列表后,对应的列表是不支持添加和删除操作的,否则会报错,但可以修改和获取元素。
2.Arrays.binarySearch( )
可以通过调用Arrays.binarySearch()的方法,进行查找:由于该方法是基于二分查找法实现,数组必须处于有序状态。所以,需要先对数组进行排序,然后再通过Arrays.binarySearch()进行查找。binarySearch()方法提供多种重载形式,用于满足各种类型数组的查找需要。
2.1 binarySearch(Object[], Object key)
a: 要搜索的数组
key:要搜索的值
如果key在数组中,则返回搜索值的索引;否则返回-1或“-”(插入点)。插入点是索引键将要插入数组的那一点,即第一个大于该键的元素的索引。
int arr [] =newint[]{1,3,4,5,8,9};
Arrays.sort(arr);
int index1 = Arrays.binarySearch(arr,6);
int index2 = Arrays.binarySearch(arr,4);
int index3 = Arrays.binarySearch(arr,0);
int index4 = Arrays.binarySearch(arr,10);
System.out.println("index1 = "+ index1 +", index2 = " + index2 +
", index3 = " + index3 +", index4 = "+ index4);
结果:index1= -5, index2 = 2, index3 = -1, index4 = -7
2.2 binarySearch(Object[], int fromIndex, int toIndex, Object key)
a:要搜索的数组
fromIndex:指定范围的开始处索引(包含)
toIndex:指定范围的结束处索引(不包含)
key:要搜索的值
如果要搜索的元素key在指定的范围内,则返回搜索值的索引;否则返回-1或“-”(插入点)。
int arr [] =newint[]{1,3,4,5,8,9};
System.out.println(arr.length+1);
Arrays.sort(arr);
int index5 = Arrays.binarySearch(arr,1, 4, 6);
int index6 = Arrays.binarySearch(arr,1, 4, 4);
int index7 = Arrays.binarySearch(arr,1, 4 ,2);
int index8 = Arrays.binarySearch(arr,1, 3, 10);
int index9 = Arrays.binarySearch(arr,1, 3, 0);
System.out.println("index5 = "+ index5 +", index6 = " + index6 +
", index7 = " + index7 +", index8 = "+ index8 +
", index9 = " + index9);
结果:index5 = -5, index6 = 2,index7 = -2, index8 = -4, index9 = -2
3.Arrays.copyOf( )
功能:复制填充数组,从原数组0位置开始拷贝指定长度到新数组
参数:copyOf(int[] original, int newLength)…
copyOf(T[] original, int newLength)
返回值:复制填充后的数组
4.Arrays.copyOfRange( )
功能:复制填充数组,从原数组中指定范围拷贝到新数组
如果指定长度或者范围超出原数组范围,则超出部分会补上此数据类型的默认值,如String类型会补null,int型会补0
参数:copyOfRange(int[] original, int from, int to)…
copyOfRange(T[] original, int from, int to)
copyOfRange(U[] original, int from, int to, 类<? extends T[]> newType)
返回值:复制填充后的数组
5.Arrays.fill( )
Java标准库中的Arrays.fill( ),将指定元素填充给数组每一个元素
参数:fill(int[] a, 【int fromIndex, int toIndex】, int val)
返回值:无
@Test
public void fillTest() {
String[] a = {"a", "b", "c", "d", "e", "f"};
System.out.println(Arrays.toString(a)); //[a, b, c, d, e, f]
Arrays.fill(a, "java");
System.out.println(Arrays.toString(a)); //[java, java, java, java, java, java]
String[] b = {"a", "b", "c", "d", "e", "f"};
System.out.println(Arrays.toString(b)); //[a, b, c, d, e, f]
Arrays.fill(b, 2, 5, "java");
System.out.println(Arrays.toString(b)); //[a, b, java, java, java, f]
//默认全填充,也可以指定范围,会改变原数组
}
6.Arrays.sort( )
Java标准库中的Arrays.sort(),可以排序:
参数:要排序的数组
返回值:无返回值
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };
// 排序前
System.out.println("排序前:" + Arrays.toString(ns));
// 排序
Arrays.sort(ns);
// 排序后
System.out.println("排序后:" + Arrays.toString(ns));
}
}
必须注意,对数组排序实际上修改了数组本身。
7.Arrays.toString( )
Java标准库中的Arrays.toString(),可进行快速打印数组内容:
参数:数组
返回值:字符串
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] cityArray = { "郑州", "广州", "苏州", "赣州", "儋州" };
double[] dataArray = { 3.4, 7.8, 4.7, 8.9 };
int[] numberArray1 = { 4, 11, 6, 8, 9, 23 };
int[] numberArray2 = { 4, 11, 6, 8, 9, 23 };
// 打印数组内容:
// Arrays类的toString()方法作用:将字符串数组中的所有元素,拼接成一个完整字符串
String str1 = Arrays.toString(cityArray);
System.out.println(str1);
System.out.println(Arrays.toString(dataArray));
System.out.println(Arrays.toString(numberArray1));
System.out.println(Arrays.toString(numberArray2));
}
}