1.二維數(shù)組:
public class TwoArray {
public static void main(String[] args) {
//看下面的內(nèi)存分析圖便于理解
/* int [][] a = {
????????????????????????{1,2},
????????????????????????{3,4,0,9},
? ? ? ? ? ? ? ? ? ? ? ? ?{5,6,7}
????????????????????????};*/
????int[][] a = new int[3][];
????a[0] = new int[2];
????a[1] = new int[4];
????a[2] = new int[3];
????a[0][0] = 1;
????a[0][1] = 2;
????a[1][0] = 3;
????a[1][1] = 4;
????a[1][2] = 0;
????a[1][3] = 9;
????a[2][0] = 5;
????a[2][1] = 6;
????a[2][2] = 7;
????System.out.println(a[0][0]);//1
????}
}
2.數(shù)組的常見操作
.數(shù)組的拷貝
System類里也包含了一個(gè)static?void?arraycopy(object?src震嫉,int?srcpos,object?dest牡属,?int?destpos票堵,int?length)方法,該方法可以將src數(shù)組里的元素值賦給dest數(shù)組的元素逮栅,其中srcpos指定從src數(shù)組的第幾個(gè)元素開始賦值悴势,length參數(shù)指定將src數(shù)組的多少個(gè)元素賦給dest數(shù)組的元素窗宇。
????String[]?s?=?{"Mircosoft","IBM","Sun","Oracle","Apple"};?
????String[]?sBak?=?new?String[6];
????System.arraycopy(s,0,sBak,0,s.length);?
.數(shù)組排序
①基本數(shù)據(jù)類型:自動(dòng)排
int[]?a?=?{1,2,323,23,543,12,59};
System.out.println(Arrays.toString(a));
Arrays.sort(a);
System.out.println(Arrays.toString(a));
結(jié)果:
[1,?2,?323,?23,?543,?12,?59]
[1,?2,?12,?23,?59,?323,?543]
②如果數(shù)組元素是引用類型,那么需要怎么做呢瞳浦?
需要實(shí)現(xiàn)compareTo接口:
?public?class?Test{
public?static?void?main(String[]?args)?{
Man[]?msMans?=?{new?Man(3,"a"),new?Man(60,"b"),new?Man(2,"c")};
Arrays.sort(msMans);
System.out.println(Arrays.toString(msMans));?
}
}
class?Man?implements?Comparable?{
int?age;
int?id;
String?name;
public?Man(int?age,?String?name)?{
super();
this.age?=?age;
this.name?=?name;
}
public?String?toString(){
return?this.name;
}
//實(shí)現(xiàn)這個(gè)接口
如果指定的數(shù)與參數(shù)相等返回0。
如果指定的數(shù)小于參數(shù)返回 -1废士。
如果指定的數(shù)大于參數(shù)返回 1
public?int?compareTo(Object?o)?{
????Man?man?=?(Man)?o;
????if(this.age<man.age){
????????return?-1;
????}
????if(this.age>man.age){
????????return?1;
????}
????return?0;
????}
.二分法查找
int[]?a?=?{1,2,323,23,543,12,59};
Arrays.sort(a);???//使用二分法查找叫潦,必須先對(duì)數(shù)組進(jìn)行排序
System.out.println("該元素的索引:"+Arrays.binarySearch(a,?12));//2
.asList
int[]?a?=?{1,2,323,23,543,12,59};
List<int[]>?list?=?new?ArrayList<int[]>();
list?=?Arrays.asList(a);???//將數(shù)組轉(zhuǎn)成成list對(duì)象中的一個(gè)元素
System.out.println(list.get(0)[1]);