【JAVA】学习java 数组

今天开始学习java第三章,主要学习数组。

数组

数组是相同数据类型元素的集合(一个数组中可以储存多个值)。

数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型, 也可以存储引用数据类型。

数组内部可以划分多个空间,且这些空间是连续的,一旦空间数确定,就不能改。

java中的数组是引用类型,属于对象。

数组中可以存储基本类型,也可以存储引用类型,取决于声明数组时,可以存储的数据类型。

数组的声明的两种方式:

• 数据类型     [  ]     数组名字     例如:int [  ]  a; (建议使用第一种)

• 数据类型 数组的名字 [ ] 例如: int a [ ];

//int x,y,z;
//int a,d[];//a是整数,d是数组
//int [] b,c;//b,c都表示数组

数组创建的三种方式:

● 声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认 的初始化值 int[] ary0 = new int[10];

● 声明数组并分配内存,同时将其初始化 int[] ary1 = new int[]{1, 2, 3, 4, 5};

● 与前一种方式相同,仅仅只是语法相对简略 int[] ary2 = {1, 2, 3, 4, 5};

从另一个角度,数组创建可以分为动态和静态两种 • 动态创建数组(没有为元素赋值,可以结合for循环进行赋值) char[] chAry = new char[10];

 静态创建数组,在创建的时候,即为每个元素赋初值 int[] ary1 = new int[]{1, 2, 3, 4, 5};

● 数组的长度:length属性 int [] b1 = new int []{1,2,3,4,5,6,7}; System.out.println(b1.length);

数组元素访问:

数组元素的访问: • 数组名字[索引]

                          例如:a[0],a[1];

 数组在创建之初,会给每个空间分配编号(索引/下标)
 通过编号可以对某个空间进行访问,
  索引(编号)特点:
                           整数(int)
                           从0开始
                           最大的索引  数组长度-1;

数组的迭代

数组迭代的两种方式:

第一种:for循环

int [] b1 = new int []{1,2,3,4,5,6,7};

数组的迭代

for(int i =0;i

       System.out.println(b1[i]);

}

第二种:增强for循环

int [] b1 = new int []{1,2,3,4,5,6,7};

for(数组元素的类型 临时变量名字 :数组的名字){

         System.out.println(临时变量名字 );

}

a: 需要遍历的数组
int t: 声明一个变量
每循环一次,从数组中取出一个元素,赋给变量t,进入到循环体,重复操作,直到数组中元素遍历完成.

即: for(int x:b1){

               System.out.println(x);

        }

冒泡排序和选择排序

冒泡排序

冒泡排序:
  每一次取出相邻的两个元素进行比较,把较大的值向后移动
    
     debug调试
        1.设置断点 开始调试程序的位置
        2.启动时使用debug模式运行程序
        3.调试按键

例如:下面5,4,3,2,1这个数组变为1,2,3,4,5排序需要比较五次

     5,4,3,2,1
     4 3 2 1 5
     3 2 1 4 5
     2 1 3 4 5
     1 2 3 4 5

public class Sort1 {

public static void main(String[] args) {
        int[] a = {5,4,3,2,1};

        for (int i = 0; i < a.length-1; i++) {//控制循环次数
            for (int j = 0; j a[j+1]){
                       int t = a[j];
                       a[j]=a[j+1];
                       a[j+1] = t;
                 }
            }
        }
        System.out.println(Arrays.toString(a));
    }
}

选择排序

假设第一个元素最大值,与之后的每一个位置上的元素进行比较,满足条件交换位置

例如:还是上面5,4,3,2,1这个数组

public class Sort2 {

    public static void main(String[] args) {
        /*
           选择排序
             假设第一个元素最大值,与之后的每一个位置上的元素进行比较,满足条件交换位置
         */
        int[] a = {5,4,3,2,1};
              // i=0
        for (int i = 0; i a[j]){
                      int t = a[i];
                      a[i] = a[j];
                      a[j] = t;
                  }
            }
        }
        System.out.println(Arrays.toString(a));

    }

}

二维数组

●二维数组的定义:

数组的数组---二维数组的每一个元素是一个一维数组

例如: int [  ][  ]a = {{1,2,3},{1,2,3},{1,2,3}};

●二维数组的声明: int [  ][  ] a;

                                int a2[  ][  ];

● 数组创建

int [  ][  ]a = new int[  ][  ]{{1,2,3},{1,2,3},{1,2,3}};

int [  ] [  ] b = {{1,2,3},{1,2,3},{1,2,3}};

int [  ][  ] c = new int[3][5];

int[  ][  ] arr = new int[3][5];定义了一个整型的二维数组 ,这个二维数组有3 个一维数组,每一个一维数组包含5个元素.

  • 二维数组的迭代

int [  ][  ] b1 = new int [  ][  ]{{1,2},{3,4}};

for(int i =0;i

    for(int j =0;j

                   System.out.println(b1[i][j]);

        }

}

【JAVA】学习java 数组_第1张图片

总结

之后我会更新一个用数组做的五子棋小游戏,加油加油!

你可能感兴趣的:(学习,java,开发语言)