第5章 数组

1、数组:指的是把一组相同数据类型,并且有相同含义数据放到一个数组变量中。

1) 定义:数组是一个变量,存储相同数据类型的一组数据。

2) 声明:声明一个数组就是在内存空间划出一串连续的空间

3) 数组的结构和基本要素

① 标识符:数组的名称,用于区分不同的数组。数组只有一个名称

② 数组元素:向数组中存放的数据,数组中的每个元素都可以通过下标来访问

③ 元素下标:对数组元素进行编号。元素下标标明了元素在数组中的位置,从0开始。

④ 元素类型:数组元素的数据类型,数组中的所有元素必须属于相同的数据类型。

 

数组长度:数组长度就是能够存放数据的最多个数,length=下标+1;注:数组长度固定不变,避免数组越界

 

2、使用数组四步走:

1) 声明数组:声明数组就是告诉计算机这一组数据的数据类型。

  语法:数据类型[] 数组名;或者   数据类型 数组名[]

  示例:int[] ban_62;

注:以上两种方法都可以声明一个数组,数组名是任意合法的变量名。

2) 分配空间:分配空间: 告诉计算机分配几个连续的空间,要存几个数。

 

(1) 

 

  • 数组名=new   数据类型[length];

  示例:ban_62=new int[35]

  • 声明和分配空间同时进行:

 

  数据类型[]  数组名=new 数据类型[length];

 

  数组长度一旦确定,就不能修改,最大下标=length-1;

  例如: int ban_62  =   new int[35];

3) 赋值

  • 数组名[下标]=值;
  • 循环赋值
  • 声明、分配空间、赋值同时进行:
    • 数据类型 [] 数组名={1,值2…};
    • 数据类型 [] 数组名=new 数据类型[]{1,值2,值3….};

      注:第1种必须一行完成;2种分配长度和直接赋值不能同时进行

4) 处理数据(数组的使用)

如:array[0]=array[0]*10;

数组长度=数组名.length;

数组排序:Arrays.sort(数组名);  导包:ctrl+shift+o

删除元素:

(1) 找到元素下标

(2) 元素下标开始,依次往前移动一格

(3) 把最后一个元素设置为0

(4) 打印删除以后的元素

插入元素:

(1) 新建一个新的空间加一的数组

(2) 找到要插入元素的下标

(3) 判断如果小于下标。

newArray[i]=array[i]

如果等于下标:

newArray[i]=插入的元素;

如果大于下标:

newArray[i]=array[i-1];

(4) 打印新的数组

数组插入算法

1) 通过比较找到插入位置

2) 将该位置后的元素后移一个位置

3) 将新歌插入到该位置

String[ ] musics = new String[]{"Island","Ocean","Pretty","Sun"};

String[ ] newMusics = new String[musics.length+1];//新歌曲数组

String music = ""; //保存用户输入的歌曲名称 ……

//通过比较找到插入位置

for(int i = 0; i < musics.length; i++){

  if(musics[i].compareToIgnoreCase(music) > 0){

     index = i; break;

  }

}

//将该位置后的元素后移一个位置

for(int i = newMusics.length-1; i > index; i--){

   newMusics[i] = newMusics[i-1];  

}

//将新歌插入到该位置 newMusics[index] = music;

注:字符串比较方法:

   compareTo( ) :不忽略大小写;

   compareTolgnoreCase( ):忽略大小写

二重循环

1) 定义:一个循环体内又包含另一个完整的循环结构。

2) 特点:外层循环变量变化一次,内层循环变量要变化一遍。

3) 语法:

使用:

  1. 完成一组数的排序(正序、逆序)
  2. 查询数组中的某一个值
  3. 修改数组中的某一个值
  4. 删除数组中的某一个值
  5. 在数组中插入一个值
  6. 查询最大值、最小值

 

原文地址:https://www.cnblogs.com/suola/p/11970649.html