多维数组:
二维数组就是存储一维数组的数组
1 package com.zqf.Array; 2 public class TestArray { 3 public static void main(String[] args) { 4 //(1)数组可以存储基本数据类型和引用数据类型 5 int [] arrA= {11,22,33,44}; //一维数组,引用数据类型 6 /**数据类型 [] 数组名= new 数据类型[长度]*/ 7 System.out.println(arrA); 8 //(2)二维数组存储一维数组的数组 9 int [] [] arrB= new int [3][]; 10 //使用二维数组去存储一维数组 11 arrB[0] = arrA; 12 System.out.println(arrB); 13 } 14 }
1 package com.zqf.Array; 2 public class TestArray2 { 3 public static void main(String[] args) { 4 //二维数组不是规则的矩阵 5 int [] intA[] = {{1,2},{2,3,4},{3,4,5,6}}; 6 System.out.println(intA); 7 8 //声明一个二维数组,用于存储3个一维数组,每一个一维数组存多少个数组,不知道,null 9 int [][]intB= new int[3][]; 10 intB[0] = new int[3];//3 11 intB[1]= new int []{1,2,3,4}; 12 intB[2] = new int [2]; //2 13 System.out.println(intB); 14 //声明一个二维数组,同时创建出一维数组,每个一维数组的长度均相同 15 //存储三个一维数组,每个一维数组的长度为4 16 int []intC[] = new int [3][4]; 17 System.out.println(intC); 18 } 19 }
Object数组存储表格数据:
1 package com.zqf.Array; 2 public class Object { 3 private String name; //姓名 4 private int age; //年龄 5 private String gender; //性别 6 public String getName() { 7 return name; 8 } 9 public void setName(String name) { 10 this.name = name; 11 } 12 public int getAge() { 13 return age; 14 } 15 public void setAge(int age) { 16 this.age = age; 17 } 18 public String getGender() { 19 return gender; 20 } 21 public void setGender(String gender) { 22 this.gender = gender; 23 } 24 25 public Object(String name, int age, String gender) { 26 super(); 27 this.name = name; 28 this.age = age; 29 this.gender = gender; 30 } 31 public Object(){ 32 super(); 33 } 34 }
package com.zqf.Array; public class TestObject { public static void main(String[] args ){ //创建一个Object类型的数组,用于存储3个Object类型的对象 Object [] o = new Object[3]; //创建Object类型的对象 Object o1 = new Object("张三",19,"男"); o[0] = o1; o[1]= new Object("李四",20,"女"); o[2] = new Object("王五",28,"男"); for (int i=0;i<o.length;i++){ System.out.println(o[i]); } } }
java.util.Arrays工具类的使用
Arrays类中的常用方法1.toString()打印数组
2.equals比较两个数组是否相同
3.copyOf(...)复制指定的数组
4.fill(...)填充
5.sort(...)数组排序
对象数组的排序
冒泡排序的基础算法:
1 package com.zqf.Array; 2 import java.util.Arrays; 3 public class TestBubble { 4 public static void main(String[] args) { 5 // TODO Auto-generated method stub 6 int [] array= {33,11,44,22,55 }; 7 System.out.println("排序之前的序列"+Arrays.toString(array)); 8 for(int i=0;i<4;i++){ 9 for(int j=0;j<4;j++){ 10 //比较相邻两数 11 if (array[j]>array[j+1]){ 12 //第三变量交换 13 int temp = array[j]; 14 array[j]= array[j+1]; 15 array[j+1] = temp; 16 } 17 } 18 } 19 //排序之后的数组 20 System.out.println("排序之后:"+Arrays.toString(array)); 21 } 22 }
排序之前的序列[33, 11, 44, 22, 55]排序之后:[11, 22, 33, 44, 55]
冒泡优化:
1 package com.zqf.Array; 2 import java.util.Arrays; 3 public class TestBubble2 { 4 public static void main(String[] args) { 5 // TODO Auto-generated method stub 6 int [] array= {33,11,44,22,55 }; 7 System.out.println("排序之前的序列"+Arrays.toString(array)); 8 boolean flag; 9 int count = 0; 10 for(int i=0;i<array.length-1;i++){ //5个数,比4次,N-1 11 flag = true; //默认有序 12 count++; //统计比较的轮数 13 //每轮比较的次数 14 for(int j=0;j<array.length-1-i;j++){ //无需比较到数组的最后,只需要比较无序数列部分即可 15 //两两相比 16 if(array[j]>array[j+1]){ 17 int temp = array[j]; 18 array[j]= array[j+1]; 19 array[j+1] = temp; 20 flag = false ; //数据中的元素无序,发生了交换 21 } 22 } 23 if(flag){ 24 break; //退出循环,证明数组有序 25 } 26 } 27 //排序之后的数组 28 System.out.println("排序之后:"+Arrays.toString(array)); 29 System.out.println("一共比较了"+count+"轮"); 30 } 31 }
排序之前的序列[33, 11, 44, 22, 55]
排序之后:[11, 22, 33, 44, 55]
一共比较了3轮
一共比较了3轮