/*
* 数组对象中的常用方法
*1. String static toString(type[] a): 将书中的元素拼接成一个字符串
*
*2. type static valueOf(type[] a, int length); 将数据按照传入的长度拷贝到一个新的数组中
*
*3. type static copyOfRange(type[] a, int start, int end); 将源数组按照传入的开始位置和结束位置拷贝到一个新的数组中;
*
*4. static void sort(type[] a); 将源数组按照优化的快速排序法进行排序
*
*5. static int binarySearch(type[] a, type v); 在整个数组中按照二分查找法查找数据,查找成功返回下标,否则返回-1;
*s
*6. static int binarySearch(type[] a, int start, int end, type v); 在整个数组中按照二分查找法从传入的开始位置和结束位置查找数据,查找成功返回下标,否则返回-1;
*
*7. static void fill(type[] a, type v); 将数组中的所有元素值都设置为v;
*
*8. static boolean equals(type[] a, type[] b,); 如果两个数组的长度和每个元素值都相等,那么返回true,否则返回false
*
*9. String static deepToString(type[] a); 将二维数组拼接为字符串形式
*/
package com.michael.lin;
import java.util.Arrays;
public class Demo07 {
public static void main(String[] args){
//1。toString()方法
String[] arr1 = {"Hello", "world", "I'm", "Michael"};
System.out.println(Arrays.toString(arr1));
//2.从下标为0的元素开始拷贝指定长度的数组
System.out.println(Arrays.toString(Arrays.copyOf(arr1, 2)));
//3.从传入的开始位置和结束位置拷贝新的饿数组
System.out.println(Arrays.toString(Arrays.copyOfRange(arr1, 1, 2)));
//4.数组排序
int[] arr2 = {10,3,21,45,99,4};
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
//5.二分查找滴定的元素
System.out.println(Arrays.binarySearch(arr2, 10));
System.out.println(Arrays.binarySearch(arr2, 1012));
//6.从指定开始位置和结束位置开始查找数组中的元素
System.out.println(Arrays.binarySearch(arr2, 2, arr2.length, 5));
System.out.println(Arrays.binarySearch(arr2, 2, arr2.length, 10));
//7.fill将数组中的所有元素都设置为一样的值
Arrays.fill(arr2, 1000);
for(int ele : arr2)
System.out.println(ele);
//8.比较两个数组是否相等
int[] arr3 = Arrays.copyOf(arr2, arr2.length);
if(Arrays.equals(arr2, arr3)){
System.out.println("Equls!");
}else{
System.out.println("not equals!");
}
//9. 打印二维字符串
int[][] arr4 = {
{1,3,3,3},
{2,3,4,10},
{10,3,4,5}
};
System.out.println(Arrays.deepToString(arr4));
}
}