Java基础之——数组

阅读: 评论:0

Java基础之——数组

Java基础之——数组

目录

数组的定义

一维数组

1.语法

1.定义数组

2.分配空间和赋值方式:

 3.各数据类型初始值

4.注意事项

2.数组的经典用例

1.求最大值/最小值

2.添加元素

3.修改元素

4.删除元素

二维数组

1.语法

2.二维数组的遍历


数组的定义

1.数组是一个变量,存储相同数据类型的一组数据

2.声明一个变量就是在内存空间划出一块合适的空间

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

3.数组基本要素

标识符:数组的名称

数组元素:数组中存放的数据

元素下标:对数组元素进行编号,数组下标从0开始,数组中的每个元素都可以通过下标来访问

元素类型:数组元素的数据类型 

注意:数组的长度固定不变,避免数组越界

一维数组

1.语法

1.定义数组

数据类型 [ ] 数组名 = new 数据类型 [数组长度];  

或者

数据类型  数组名[ ] = new 数据类型 [数组长度];

注意:1.定义数组时数组类型表示数组中存储的数据都是该类型数据

           2.定义数组时一定要有 [ ] , 表示定义了一个数组,而不是一个普通的变量

           3.定义数组时如果写等号右边的new--,则需要表明数组长度

2.分配空间和赋值方式:

 3.各数据类型初始值

数组元素类型默认初始值
byte、short、int、long0
float、double0.0
char'u0000'
booleanfalse
引用数据类型null

4.注意事项

1.数组的下标是从零开始的,数组中的每个元素都可以通过下标来访问,最大到数组长度-1

2.数组名称后缀加Array,规范一点

3.字符串判断为空值的时候不用equal,直接用==即可

4.避免数组越界,等价于上边的写法,定义一个String 类型的变量shop,直接用定义的数组名加.for,回车

5.数组在编译时一定要写明数组的长度,否则不可以使用,编译出错

6.创建数组时,若要直接赋值,必须在一条语句中完成:

2.数组的经典用例

1.求最大值/最小值

        找最大值和最小值一样,需要先单独创建一个对象,用来存储数组中的任意一个数,但为了方便,建议为第一个数字,然后依次和数组中的数字去比较,每次的结果将大的(小的)值赋给max,然后继续比较,知道将数组中的数字比较完为止。

找最大值:

 //计算成绩最大max = scores[0];//max存放最大值,初始值为数组第一个数//遍历数组,从数组第二个数组开始依次和max比较,比较到数组的最后一个数,所以i<数组的长度for(int i = 1; i < scores.length; i++){//如果大于max,就把这个值赋值给max,然后继续比较,知道数组的数字比较完。if(scores[i] > max){max = scores[i];}}System.out.println("考试成绩最高分为:" + max);

找最小值:

public class LowestPrice {static Scanner sc = new Scanner(System.in);/*** @description 张浩想买一部手机,他询问了四家店的价格,分别是3000元、3150元、2900元和2950元,请编程求出最低价格* @author banban* @date 2022-07-14 17:28:11* @param args* @return */public static void main(String[] args) {System.out.println("请输入4家店的价格");double[] priceArray = new double[4];//定义一个长度为4的数组存放每家店的价格for (int i = 0; i < priceArray.length; i++) {//依次输入每家店的价格System.out.print("第" + (i+1) + "家店的价格:");priceArray[i] = sc.nextDouble();}double lowestPrice = priceArray[0];//存放最低价,初始值为第一家店的价格for (int i = 0; i < priceArray.length; i++) {//比较每家店的价格,如果priceArray比lowestPrice低if (lowestPrice > priceArray[i]) {//就把priceArray的值赋给lowestPricelowestPrice = priceArray[i];}}System.out.println("最低价格为:" + lowestPrice);}
}

2.添加元素

        在数组中添加元素,如果知道要添加的元素在那个位置,可以直接赋值进行添加。

        如果不知道,比如要在数组里为空的位置添加东西,此时首先要遍历数组,找到要插入的位置的下标,然后在该数组的该下标位置进行添加。此时需要建立一个索引,用来存放下标位置。当找到为空的位置时,将此下标赋值给索引。再将数组中此下标位置进行赋值。

public class AddBook {/*** @description 有一个存储图书名称的数组,数据如下:* String[] books={“三国演义”,“红楼梦”, “史记” , null , “左传”,”菜根谭”};* 在null的位置插入西游记* @author banban* @date 2022-07-14 17:38:20* @param args* @return */public static void main(String[] args) {//有一个books的数组String[] books = {"三国演义","红楼梦","史记",null ,"左传","菜根谭"};int num = -1;//定义一个索引,存储数组中为空值的下标数for (int i = 0; i < books.length; i++) {//遍历数组,找出为空值的位置if (books[i] == null) {//当数组中该下标中的位置为空值时num = i;//将下标值赋给numbooks[num] = "西游记";//将数组中该位置存入西游记break;}}for (int i = 0; i < books.length; i++) {//输出数组值System.out.println(books[i]);}}
}

3.修改元素

        修改元素和插入元素类似,都是要首先遍历数组,通过比较找到要修改的数组下标,然后进行修改。 

4.删除元素

        删除元素比较复杂,他需要先找到要删除的元素位置,也需要建立一个索引,然后将数组后面的数依次往前挪,将数组最后一位设置为null,也就是说,需要两个for循环,但是第二次遍历的不是整个数组,而是从要删除的元素下标开始,到数组倒数第二位结束,因为每次都是将后一个值赋给前一位,往前挪一位相当于,所以数组最后一位已经没有后一位给他赋值了,如果i<数组长度,那么会报数组越界错误。

public class DeletBook {/*** @description 有一个存储图书名称的数组,数据如下:* String[] books={“三国演义”,“红楼梦”, “史记” , “西游记”, “左传”,”菜根谭”};* 删除“左传”这个元素,将后面的元素依次往前推,将最后一位设置为null。* @author banban* @date 2022-07-14 17:49:31* @param args* @return */public static void main(String[] args) {//有一个books的数组String[] books = {"三国演义","红楼梦","史记","西游记" ,"左传","菜根谭"};int num = -1;//定义一个索引,存储数组中为左传的下标数for (int i = 0; i < books.length; i++) {//遍历数组,找出数组中左传的存储位置if ("左传".equals(books[i])) {//如果数组中该位置存储的是左传num = i;//将下标数赋值给numbreak;}}//从左传下标数开始,到数组倒数第二位结束for (int i = num; i < books.length-1; i++) {//将后一位的值赋给前一位,此时数组最后一个值不变,仍是菜根谭books[i] = books[i+1];}books[books.length-1] = null;//将数组最后一个值变成空值for (int i = 0; i < books.length; i++) {//输出数组值System.out.println(books[i]);}}
}

二维数组

1.语法

数据类型 [ ] [ ]  数组名;              或者            数据类型  数组名  [ ] [ ] ;

1)数据类型为数组元素的类型。

2)“[ ] [ ]”用于表明定义了一个二维数组,通过多个下标进行数据访问。

3)从内存分配原理的角度看,Java中只存在一维数组,不存在多维数组,或者说,本质上二维数组还是一维数组。他是将一维数组里的每个元素再次进行划分成多个位置。

        

4)定义二维数组时,可以先不写第二个[ ]里的长度,但是最大维数一定要写,即第一个[ ]

        

 5)二维数组直接赋值方式

        int [ ] [ ]  array = new int [ ] [ ] {{80,66},{70,54,98},{77,59}};

        此时表示二维数组最大维数为3,每个元素里又包含三个元素

2.二维数组的遍历

//二维数组的遍历需要双重循环
public static void main(String[] args){int[][] gradeArray = new int[][]{{80,66},{70,54,98},{77,59}};int total;//保存总成绩for (int i = 0; i < gradeArray.length; i++) {String str = (i+1) + "班";total = 0;//每次循环都把总成绩归零for (int j = 0; j < gradeArray[i].length; j++) {total += gradeArray[i][j];//成绩累加}System.out.println(str + "总成绩:" + total);}
}

上述代码求每个班的总成绩,一共三个班,运行结果为:

本文发布于:2024-01-28 10:25:10,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064087166753.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:首页推荐2
下一篇:MySQL基础篇3
标签:数组   基础   Java
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23