/*Arrays jdk中为了便于开发,给开发者提供了Arrays类, 其中包含了很多数组的常用操作。例如快速输出、排序、查找等。*/ import java.util.Arrays; public class ShuZun { public static void main(String[] args) { //数组的字符串形式 int[] arr={8,3,6,7,2,9}; //数组的【输出】 String str=Arrays.toString(arr); System.out.println(str); //sort对数组排序(只能升序)-》内部使用快速排序 Arrays.sort(arr); System.out.println(Arrays.toString(arr)); /*/fill 填充数组(arr,1,5,9)第一位数字是数组开始的位置, 第二位数字数组结束的位置但java记前不记后所以位置是1.2.3.4 第三位是你要覆盖在上面的数
如果全部填充一个数:Arrays.fill(arr,2) */ Arrays.fill(arr,1,5,9); System.out.println(Arrays.toString(arr)); /*equals(arr,arr1)判断两个数组是否相等 数组相等的条件是:1.长度相等2.对应位置元素相等*/ int[] arr1={1,2,3}; System.out.println(Arrays.equals(arr,arr1)); } }
/*Arrays 二分法查找必须是有序的数组,如果找到返回索引; 如果没有找到,返回-插入点-1。插入点就是key应该放到数组的位置。 */ import java.util.Arrays; public class ShuZun { public static void main(String[] args) { int[] arr={2,5,6,7,8,9}; int t=6; int loc=Arrays.binarySearch(arr,t); System.out.println("t的位置:"+loc); // 二分法查找只适用于有序数组。 } }
/*Arrays数组的复制 copyOf(arr,len) 把arr复制len个长度的元素并返回新数组。 如果len>arr.length,新数组的长度末尾用0填充。 copyOfRange(arr,from,to) 从arr中from(包含)位置开始复制到to(不包含) 这个范围的元素到新数组中。含头不含尾。 */ import java.util.Arrays; public class ShuZun { public static void main(String[] args) { int[] arr={1,2,3,4,5}; //第一种后面是几位,就复制几个元素过去,如果超过原数组,末尾就用0填充 int[] newArr=Arrays.copyOf(arr,6); System.out.println(Arrays.toString(newArr)); //第二种两个数是确定复制元素的位置(含头不含尾) int[] newArr2=Arrays.copyOfRange(arr,1,3); //第三种 System.out.println(Arrays.toString(newArr2)); int[] arr2=new int[arr.length]; System.arraycopy(arr,1,arr2,0,3); //(源数组,从原数组开始的位置,现数组,从这个位置开始存放,复制多少个) //如果末尾还有空间就用0填充 System.out.println(Arrays.toString(arr2)); } }
/*
在程序运行过程中,可以向应用程序传递一些参数,这些参数称为命名行参数
命令行参数以字符串的形式传入args数组中。
* 可以一次传递0-多个参数,以空格分割。 如果参数中本身包含空格,需要使用引号引起来。*/ public class Hello { public static void main(String[] args){ System.out.println(args.length); for (int a=0;a<args.length;a++){ System.out.println(args[a]); }}}
/*Arrays。二维数组基础 二维数组就是数组的数组,数组的元素也是数组。 二维数组表示行列二维结构。 */ import java.util.Arrays; public class ShuZun { public static void main(String[] args) { //二维数组(int[])[] //声明 int[][]arr; // 初始化一个能存3个一维数组的二维数组 //arr = new int[3][]; /*赋值 int[] arr1 = {1,3,4,5}; int[] arr2 = {1,3,4}; int[] arr3 = {2,1,6,4}; arr[0] = arr1; arr[1] = arr2; arr[2] = arr3; System.out.println(arr);一个二维数组地址 System.out.println(Arrays.toString(arr));三个一维地址*/ /*声明一个规则的二维数组,3行4列 int[][] arr; arr = new int[3][4]; arr[0][0] = 10; arr[0][1] = 20; arr[0][2] = 30; arr[0][3] = 40; arr[1][0] = 100; arr[1][1] = 200; arr[1][2] = 300; arr[1][3] = 400; arr[2][0] = 1000; arr[2][1] = 2000; arr[2][2] = 3000; arr[2][3] = 4000; System.out.println(Arrays.toString(arr));*/ //声明字面量二维数组 int[] [] arr={ {1,2,3,4}, {11,22,33}, {111,222,333,4444}, }; System.out.println(Arrays.toString(arr)); //二维数组里的3个一维数组的地址 for(int t=0;t<arr.length;t++){ for(int i=0;i<arr[t].length;i++){ System.out.print(arr[t][i]+" "); }//二维数组遍历输出 System.out.println();//换行 } } }
Object 类是所有类的根类。
如果一个类没有显示继承另外一个类,那么该类一定继承于Object。
toString() 返回对象的字符串表示形式
equals(Object obj) 用于判断两个对象是否相等。
== 比较两个对象的内存地址或基本数据类型的比较,object默认equals实现比较内存地址。
equals:用于比较两个对象的内容(属性)是否相等。
当自定义对象时,要比较自定义对象是否相等,就必须通过equals方法比较两个对象属性值是否相等,那就必须重写Object的equals方法。
public class Test01 {
public static void main(String[] args) {
Object obj = new Object();
// 输出对象时,默认调用toString方法
System.out.println(obj);// 类型@内存地址
System.out.println(obj.toString());
public boolean equals(Object obj) {
if(this == obj) {
return true;
}
Student s = (Student) obj;
if(this.sid.equals(s.sid) && this.name.equals(s.name) && this.age == s.age) {
return true;
}else {
return false;
}