|----Arrays类中提供
1:booleanequals(array1,array2)
publicstaticvoid main(String[] args) { // TODO Auto-generated method stub int[] arr1=newint[]{21,20,11}; int[] arr2=newint[]{21,20,11,10}; int[] arr3=newint[]{210,20,11,90}; boolean flag= Arrays.equals(arr1, arr2); boolean flag2=Arrays.equals(arr2, arr3); System.out.println("比较的结果:"+flag); System.out.println("比较的结果2:"+flag2); } |
|----小结:equals(数组名称,数组名称); 要求个数与内容一致才返回true,否则false
2:Arrays.tostring(数组名称); 不管当前数组是什么类型的,统一变成String(字符串类型)
String str= Arrays.toString(arr1); System.out.println("str:"+str); |
3:Arrays.fill(数组名称,需要替换的数字或字符串);
Arrays.fill(arr1, 30); |
4:Arrays.copyof(数组名称,长度);
5:binarySearch(array,val); 如果返回-1 说明没有找到
使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过sort(int[])
方法)。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。
|-----插入排序 原理 ascii码 :美国推出一套工业数据交换的标准 A:二进制 八进制 十进制十六进制
|----把上述图变成代码
|----compareToIgnoreCase:
/** * 功能:插入排序 */ publicstaticvoid main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); //定义一个旧书架 String[] oldBook=new String[]{"c#","html","java","sql"}; //定义一个新书架 String[] newBook=new String[oldBook.length+1]; //新书 String book=""; //下标 //int index=oldBook.length; int index=0; System.out.println("旧书架书:===================="); for (String tt : oldBook) { System.out.print(tt+"\t"); } System.out.println(); //1:复制 for(int i=0;i<oldBook.length;i++){ newBook[i]=oldBook[i];//新书架最后一本是null } //2:提示用户输入新书 System.out.println("请输入新书:"); book=sc.next(); //3:找到新书插入的位置 for(int j=0;j<oldBook.length;j++){ if(oldBook[j].compareToIgnoreCase(book)>0){ //比较但忽略大小写 aefg Eabc 取差值:oldBook[j]的首字母的ascii码-book的首字母的asciil码>0 //记下下标 index=j; break; }else{ index=oldBook.length; } } //4:移位 for(int k=newBook.length-1;k>index;k--){ newBook[k]=newBook[k-1]; } //5:添加 newBook[index]=book; System.out.println("添加新书后:-----------------------"); for (String sg : newBook) { System.out.print(sg+"\t"); } }
} |
|------插入排序写活 一个字符串 companyIgnocase(第1个字母一样,比较第2个字母,除非所有字母都是一样的)
|-------插入排序 单个字符或数字 重复 companyIgnocase()>=0
publicstaticvoid main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); String[] oldMusic=new String[4]; String[] newMusic=new String[oldMusic.length+1]; String music=""; //下标 int index=0; //1:输入 for(int i=0;i<oldMusic.length;i++){ System.out.println("请输入第"+(i+1)+"首歌曲:"); oldMusic[i]=sc.next(); } //2:排序 Arrays.sort(oldMusic);//排序的原理:ascii码排序 System.out.println("按ascii码排序后:"); for (String tt : oldMusic) { System.out.print(tt+"\t"); } System.out.println(); //3:复制数组 newMusic=Arrays.copyOf(oldMusic, 5); //4:插入歌曲 System.out.println("请输入新歌:"); music=sc.next(); //5:找位置 for(int j=0;j<oldMusic.length;j++){ if(oldMusic[j].compareToIgnoreCase(music)>=0){ //记下下标 index=j; break; }else{ index=oldMusic.length; } } //6:移位 for(int k=newMusic.length-1;k>index;k--){ newMusic[k]=newMusic[k-1]; } //7:添加 newMusic[index]=music; System.out.println("插入新歌后:"); //8:输出添加的结果 for (String st : newMusic) { System.out.print(st+"\t"); } }
|
|-----二维数组:使用!
publicstaticvoid main(String[] args) { // TODO Auto-generated method stub int[][] nums=newint[2][3]; Scanner sc=new Scanner(System.in); //赋值 for(int i=0;i<2;i++){ System.out.println("请输入第"+(i+1)+"行:"); //行数 for(int j=0;j<3;j++){ //列数 System.out.println("请输入列:"+(j+1)+"数据:"); nums[i][j]=sc.nextInt(); } } System.out.println("遍历二维数组:"); //遍历 for(int i=0;i<2;i++){ for(int j=0;j<3;j++){ System.out.print(nums[i][j]+"\t"); } System.out.println(); } } 冒泡排序:
|