第二章 数组

数组

数组的基本概念

1.数组是相同数据类型元素的集合

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

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

数组声明语法

数据类型 名称 [];

数据类型 [] 名称;

建议使用第二种,防止混淆。

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];

注意 :

数组的索引从0开始

索引的数据类型是 int型

索引最大值和数组长度始终差1

数组迭代的方式

for循环

int [] b1 = new int []{1,2,3,4,5,6,7}; 
//数组的迭代 
for(int i =0;i<b1.length;i++){
    System.out.println(b1[i]); 
}

增强for循环

for(int x:b1){ 
    System.out.println(x); 
}

第二种:增强for循环

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

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

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

}

数组排序

冒泡排序

import java.util.Arrays;
/*
        冒泡排序实例,冒泡排序是 每一次取出相邻的两个元素进行比较,把较大值向后移动(升序排序)
 */
public class Demo4 {
    public static void main(String[] args) {
        int [] a ={1,2,3,4,5,6,7,8};
        /*
        6 1 2 3 4 5
        6 5
        6 5 4
        6 5 4 3
        2
        1
         */
        for(int i=0;i<a.length-1;i++)       //控制循环的次数,即每轮循环的次数
        {
            for(int j=0;j<a.length-i-1;j++)     //控制每轮循环的次数
            {
                if(a[j]<a[j+1])
                {
                    int t=a[j+1];
                    a[j+1]=a[j];
                    a[j]=t;
                }
            }
        }
        System.out.println(Arrays.toString(a));
    }
}

选择排序

import java.util.Arrays;
/*
    选择排序:假设第一个元素为最大值,将第一个元素与之后的每一个元素进行比较,符合规则的,将两者进行互换。
        1 2 3 4 5
        5 1 2 3 4
        5 4 1 2 3
        5 4 3 1 2
        5 4 3 2 1

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

        for(int i=0;i<a.length-1;i++)
        {
            for(int j=i+1;j<a.length;j++)
            {
                if(a[j]>a[i])
                {
                    int t =a[j];
                    a[j]=a[i];
                    a[i]=t;

                }
            }
        }
        System.out.println(Arrays.toString(a));
    }
}

二维数组的定义

数组的数组,二维数组的每一个元素是一个一维数组。

二维数组的声明

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];	//定义了一个整型的二维数组 ,这个二维数组有3 个一维数组,每一个一维数组包含5个元素

二维数组的迭代

int [][] b1 = new int [][]{{1,2},{3,4}};
for(int i =0;i<b1.length;i++){
    for(int j =0;j<b1[i].length;j++){ 
        System.out.print(b1[i][j]); 
    }
}

debug(调试)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值