二数组深化

多维数组:

  二维数组就是存储一维数组的数组
 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轮
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/zqfdgzrc/p/10435576.html