多维数组:
二维数组就是存储一维数组的数组
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轮