当前位置:网站首页>一维数组定义与使用
一维数组定义与使用
2022-07-26 19:22:00 【抬眼远望】
数组
数组是一个变量,存储相同数据类型的一组数据
数组基本元素:
标识符
数组元素
元素下标:从0开始
元素类型

注意:
数组长度固定不变,避免数组越界
数组中的所有元素必须是相同的数据类型
使用数组四步走:
第一步:声明数组: 数据类型 [] 数组名; 或者 数据类型 数组名[];
// 声明8大基本类型的数组
byte[] nums1;
short[] nums2;
int [] nums3;
long[] nums4;
float[] nums5;
double[] nums6;
char[] chars;
boolean[] bools;
// 声明String类型的数组
String[] strs;第二步:分配空间:告诉你声明的数组里可以存储多少个数据
数组名=new 数据类型 [数组长度];
nums1=new byte[3];
nums2 =new short[5];
nums3 =new int [2];
nums4 =new long[4];
nums5=new float[3];
nums6=new double[5];
chars =new char[8];
bools=new boolean[8];
strs =new String[3];第三步:给数组赋值:将数据存储到数组中
数组名[下标]=数据;
nums3[0]=100;
nums3[1]=199;
// nums3[2]=200;
// System.out.println(nums3[2]);
//java.lang.ArrayIndexOutOfBoundsException数组下标越界异常,更改下标
System.out.println(nums3[0]);
System.out.println(nums3[1]);
bools[0] = true;
bools[1] = false;
System.out.println(bools[1]);//false
System.out.println(bools[2]);//false
strs[0] = "hello";
strs[1] = "java";
System.out.println(strs[0]);//hello
System.out.println(strs[1]);//java
System.out.println(strs[2]);//null第四步:操作数据:使用 数组名[元素的下标]来操作数据
System.out.println(nums3[0]);
nums3[0] = 1000;
System.out.println(nums3[0]);
nums3[0]+=500;//num3[0]=nums3[0]+500;
System.out.println(nums3[0]);
未存入数据时,数组各数据类型默认值
//未存入数据时,数组各数据类型默认值
System.out.println(num1[2]);//byte:0
System.out.println(num2[4]);//short:0
System.out.println(num3[2]);//int:0
System.out.println(num4[3]);//long:0
System.out.println(num5[2]);//float:0.0
System.out.println(num6[4]);//double:0.0
System.out.println(ch[7]);//char:无
System.out.println(bool[7]);//boolean:false
System.out.println(str[2]);//String:null 
声明数组,分配空间合并写:
数据类型[] 数组名 =new 数据类型[数组长度]; 或者 数据类型 数组名[] =new 数据类型[数组长度];
//声明一个长度为5的int类型的数组
int[] num=new int[5];
//声明一个长度为3的boolean类型的数组
boolean[] bools=new boolean[3];
//声明一个长度为6的String类型的数组
String[] strs =new String[6];声明数组,分配空间,赋值合并写:
数据类型[] 数组名 =new 数据类型[]{数据1,数据2,.....,数据n}; 或者 数据类型 数组名[] =new 数据类型[]{数据1,数据2,.....,数据n};
//声明一个长度为5的int类型数组,里面的数据分别是11 25 36 98 75
int[] num=new int[]{11,25,36,98,75};
//声明一个长度为3的String类型的数组,里面的数据分别是"hello" "java" "html"
String[] strs =new String[]{"hello" ,"java" , "html"};声明数组,分配空间,赋值合并写的简写方式,也是最常用的方式
数据类型[] 数组名 ={数据1,数据2,.....,数据n}; 或者 数据类型 数组名[] ={数据1,数据2,.....,数据n};
//声明一个长度为5的char类型的数组,里面的元素分别是'a' 'f' '3' 'm' 'r'
char[] chs={'a' ,'f' , '3' ,'m' ,'r'};
获取数组中元素的个数:数组名.length;
遍历:按照元素在数组中的顺序输出
int[] nums={25,31,98,15,47,34,75,84,65,61,72,86,15,45,79,94,31,57};
int size=nums.length;
System.out.println("nums数组中元素的个数是:"+size);
//遍历
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i]+" ");
}
System.out.println();遍历还可以使用增强for来进行循环遍历
语法格式:
for(数据类型 变量:数组名){
}
执行规律:按照数组中元素的顺序依次取出元素来存入到变量中 ,这时候操作变量就相当于操作数组里的元素
//增强for
for(int a:nums){
System.out.print(a+" ");
}应用:
import java.util.Scanner;
public class ArrayDemo02 {
public static void main(String[] args) {
// 从键盘输入10位同学的Java成绩存储到数组中,计算这10位同学的总分和平均分
Scanner sc =new Scanner(System.in);
//准备容器(数组)用来存储10个学生的Java成绩
double[] scores=new double[10];
double sum=0;
for (int i = 0; i < scores.length; i++) {
System.out.println("请输入第"+(i+1)+"位同学的Java成绩: ");
scores[i]=sc.nextDouble();
sum+=scores[i];//sum=sum+score[i];
}
System.out.println("成绩存储完毕");
//输出所有同学的成绩
System.out.println("所有同学的成绩为:");
for (double d : scores) {
System.out.print(d+" ");
}
//求平均分
double avg=sum/10;
System.out.println("所有学生成绩之和:"+sum+",平均分为:"+avg);
}
}


练习:有一个数列:8,4,2,1,23,344,12;循环输出数列的值;求数列中所有数值的和;猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数 。欢迎大家与我讨论
边栏推荐
- 阿里三面:MQ 消息丢失、重复、积压问题,如何解决?
- Kingbases SQL language reference manual of Jincang database (13. SQL statement: alter synonym to comment)
- 使用ECS和OSS搭建个人网盘
- Jincang database kingbasees SQL language reference manual (18. SQL statement: drop materialized view to drop synonym)
- 金仓数据库 KingbaseES SQL 语言参考手册 (17. SQL语句: DISCARD 到 DROP LANGUAGE)
- Student‘s t分布
- 计算机专业面试题目总结,总导航
- Kingbases SQL language reference manual of Jincang database (16. SQL statement: create sequence to delete)
- C# 客户端程序调用外部程序的3种实现方法
- Kingbasees SQL language reference manual of Jincang database (17. SQL statement: discard to drop language)
猜你喜欢

直播预约有奖| 高级咨询顾问徐雁斐:效能度量如何助力高效精细的外包管理

Vite 配置 Eslint 规范代码

Digital transformation of enterprises has become a general trend, and it is important to choose the right online collaboration tools

2022年下半年(软考高级)信息系统项目管理师报名条件

以 NFT 为抵押品的借贷协议模式探讨

一个开源的网页画板,真的太方便了

Software testing - what are the automated testing frameworks?

Use of load balancing

N圆最密堆积、最小外接正方形的matlab求解(二维、三维等圆Packing 问题)

一家芯片公司倒在了B轮
随机推荐
一文读懂 .NET 中的高性能队列 Channel
事务回滚,同时记录异常信息
银行业务分类
Kingbases SQL language reference manual of Jincang database (13. SQL statement: alter synonym to comment)
猎聘问卷星,成为微信「寄生虫」
Household deposits increased by 10.33 trillion yuan in the first half of the year, with an average of 57.1 billion deposits pouring into banks every day
用 QuestPDF操作生成PDF更快更高效!
移动端video兼容你需要知道的几点
.net GC workflow
Leetcode daily practice - 189. Rotation array
罗永浩赌上最后一次创业信用
【机器学习】变量间的相关性分析
I tried many report tools and finally found a report based on Net 6
ShardingSphere-JDBC 关键字问题
STM32F103有源蜂鸣器驱动程序
使用请求头认证来测试需要授权的 API 接口
DOM case: 10 second countdown - write jump page related knowledge
金仓数据库 KingbaseES SQL 语言参考手册 (13. SQL语句:ALTER SYNONYM 到 COMMENT)
TableWidget
金仓数据库 KingbaseES SQL 语言参考手册 (19. SQL语句: DROP TABLE 到 LOAD)
