小白自学笔记——JAVA基础 3.1 一维数组
名词解释
数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
数组的常见概念
- 数组名
- 下标(或索引)
- 元素
- 数组的长度
数组的特点:
- 数组是有序排列的。
- 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。
- 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。
- 数组的长度一旦确定,就不能修改。
- 我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快。
数组的分类
- 按照维度:一维数组、二维数组、三维数组、…
- 按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组(即对象数组)
一维数组
一维数组的声明
type var[] 或 type[] var;
eg:
int a[];
int[] a1;
double b[];
String[] c; //引用类型变量数组
注:Java语言中声明数组时不能指定其长度(数组中元素的数), 例如: int a[5];//非法
一维数组的初始化
动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行
int[] arr = new int[3];
arr[0] = 3;
arr[1] = 9;
arr[2] = 8;
String names[];
names = new String[3];
names[0] = “钱学森”;
names[1] = “邓稼先”;
names[2] = “袁隆平”;
静态初始化:在定义数组的同时就为数组元素分配空间并赋值
int arr[] = new int[]{ 3, 9, 8};
或
int[] arr = {3,9,8};
String names[] = {"李四光","茅以升","华罗庚"}
eg:
public class ArrayTest {public static void main(String[] args) {//1.一位数组的声明和初始化int num;//声明num = 10;//初始化int id = 1001;//声明+初始化int[] ids;//声明//1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行ids = new int[]{1001,1002,1003,1004};//1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行String[] names = new String[5];//错误写法//int[] arr1 = new int[];//int[5] arr2 = new int[5];//int[] arr3 = new int[3]{1,2,3};//总结:数组一旦初始化完成,其长度就确定了。}
}
如何调用数组的指定位置?
通过角标方式调用。数组的索引是从0开始的,到数组的长度-1结束。
names[0] = "王铭";names[1] = "王赫";names[2] = "张学良";names[3] = "孙居龙";names[4] = "王宏志";
如何获取数组的长度?
利用属性length。
System.out.println(names.length);System.out.println(ids.length);
如何遍历数组
// System.out.println(names[0]);
// System.out.println(names[1]);
// System.out.println(names[2]);
// System.out.println(names[3]);
// System.out.println(names[4]);for(int i = 0;i < names.length;i++){System.out.println(names[i]);
数组元素的默认初始化值
数组元素是整型:0
数组元素是浮点型:0.0
数组元素是char型:0,而非’0’
数组元素是boolean型:false
数组元素是引用数据类型:null
package com.atguigu.java;public class ArrayTest1 {public static void main(String[] args) {//5.数组元素的默认初始化值int[] arr = new int[4];for(int i = 0;i < arr.length;i++){System.out.println(arr[i]);}System.out.println("************");float[] arr1 = new float[4];for(int i = 0;i < arr1.length;i++){System.out.println(arr1[i]);}System.out.println("************");char[] arr2 = new char[4];System.out.println("----" + arr2[0] + "****");if (arr2[0] == 0){System.out.println("你好");}System.out.println("************");boolean[] arr3 = new boolean[4];System.out.println(arr3[0]);System.out.println("************");String[] arr4 = new String[4];System.out.println(arr4[0]);if (arr4[0] == null){System.out.println("北京天气不错");}}
}
一维数组的内存解析
练习1
升景坊单间短期出租4个月,550元/月(水电煤公摊,网费35元/月),空调、卫生间、厨房齐全。屋内均是IT行业人士,喜欢安静。所以要求来租者最好是同行或者刚毕业的年轻人,爱干净、安静。
package com.atguigu.exer;public class ArrayDemo {public static void main(String[] args) {int[] arr = new int[]{8,2,1,0,3};int[] index = new int[]{2,0,3,2,4,0,1,3,2,3,3};String tel = "";for(int i = 0;i < index.length;i++){tel += arr[index[i]];}System.out.println("联系方式:" + tel);//18013820100}
}
练习2
从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
成绩>=最高分-10 等级为’A’
成绩>=最高分-20 等级为’B’
成绩>=最高分-30 等级为’C’
其余 等级为’D’
提示:先读入学生人数,根据人数创建int数组,存放学生成绩。
package com.atguigu.exer;import java.util.Scanner;
public class ArrarDemo1 {public static void main(String[] args) {//1.使用Scanner,读取学生个数。Scanner scanner = new Scanner(System.in);System.out.println("请输入学生个数:");int number = scanner.nextInt();//2.创建数组,存储学生成绩,动态初始化。int[] scores = new int[number];//3.给数组中的元素赋值int maxScore = 0;System.out.println("请输入" + number + "个学生成绩:");for(int i = 0;i < number;i++){scores[i] = scanner.nextInt();//4.获取数组中的最大值:最高分if(maxScore < scores[i]){maxScore = scores[i];}}//5.根据每个学生成绩与最高分的差值,得到每个学生的等级,并输出等级和成绩char level;for(int i = 0;i < number;i++){if(scores[i] >= maxScore - 10){level = 'A';}else if(scores[i] >= maxScore - 20){level = 'B';}else if(scores[i] >= maxScore - 30){level = 'C';}else{level = 'D';}System.out.println("student" + i + " score is " + scores[i] +" ,grade is " + level);}}
}
本章完结!
小白自学笔记——JAVA基础 3.1 一维数组相关推荐
- 小白自学笔记——JAVA基础 3.2 多维数组
名词解释 Java 语言里提供了支持多维数组的语法. 如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格,像Excel中的表格一样. 对于二维数组的理解,我们可以看成是一维数组a ...
- 小白自学笔记——JAVA基础 0.1Java语言概述
我学习的是宋红康老师的视频,首先是课程大纲. 课程大纲 课程体系 第1章 Java语言概述 第2章 基本语法 第3章 数组 第4章 面向对象编程(上) 第5章 面向对象编程(中) 第6章 面向对象编程 ...
- 小白自学笔记——JAVA基础 1.1常用的DOS文件
今天开始自学JAVA第一课.看的是B站上宋红康老师的视频. 一 学习常用的DOS命令 在搜索栏输入'cmd'打开 eg1:打开D盘文件 [输入] D: eg2:列出当前文件夹下的所有文件 [输入] d ...
- 小白自学笔记——JAVA基础 2.5进制
计算机中不同进制的使用说明 所有数字在计算机底层都以二进制形式存在. 对于整数,有四种表示方式: - 二进制(binary):0,1 ,满2进1.以0b或0B开头. - 十进制(decimal):0- ...
- 小白自学笔记——JAVA基础 2.2变量
变量概述 概念: - 内存中的一个存储区域 - 该区域的数据可以在同一类型范围内不断变化 - 变量是程序中最基本的存储单元,包含变量类型.变量名和存储值 作用 - 用于在内存中保存数据 变量的使用 j ...
- 小白自学笔记——JAVA基础 2.9循环结构
循环结构 在某些条件满足的情况下,反复执行特定代码的功能. 循环语句分类 for 循环 while 循环 do-while 循环 FOR循环结构 for (①初始化部分;②循环条件部分;④迭代部分){ ...
- 小白自学笔记——JAVA基础 2.8分支结构
名词解释 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: 顺序结构 程序从上到下逐行地执 ...
- 小白自学笔记——JAVA基础 1.2JAVA语言环境搭建
我使用的是JAVA8版本. 名词解释 JDK--Java Development Kit(JAVA开发工具包) JRE--Java Runtime Environment(JAVA运行环境) JDK. ...
- 小白自学笔记——JAVA基础 2.12 项目一 家庭记账软件
需求说明 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 假设家庭起始的生活基本金为10000元. 每次登记收入(菜单2)后,收入的金额应 ...
最新文章
- Java基础--继承、this、super、抽象类
- 需求实在太旺盛,三星电子考虑扩大在华芯片产能
- zend studio安装xdebug调试工具
- mysql环境搭载后老出错_使用Docker在window10下搭建SWOFT开发环境,mysql连接错误
- LeetCode 452 用最少数量的箭引爆气球
- linux系统监控必备两款软件
- 监听器第一篇【基本概念、Servlet各个监听器】
- 导入要素类到要素数据集当中(C++)(ArcObject)史上最快
- Python中的函数(调用、参数、返回值、变量的作用域)
- mpls 保留标签值_浅析MPLS多协议标签交换的发展历程
- 内容营销——网络营销的杀手级武器
- ubuntu下从软件中心安装软件时的软件缓存目录
- LLVM各种格式转换图
- Linux配置Java环境变量 详解
- 软考(计算机软件水平考试)程序员介绍
- 将多个BIN文件合成一个
- 创建一个员工类(Employee),其中包括:1) 4个私有属性:员工姓名(name)、员工年龄(age)、员工职位(position)、工资(salary)
- 虚拟机2003服务器配置教程,虚拟机安装win2003及Ip配置.doc
- 程序员后端学习路线大体了解
- Vue 项目对接接口数据
热门文章
- 以三维地图和倾斜摄影为基础的CIM托底,以三维视频融合或投影融合为核心的时空克隆为引擎,以混合架构模式构建的魔镜平台,将成为元宇宙的主流 点卯+魔镜系列
- html提取正文字游戏名,游戏取名频道页.html
- 重装xshell的系统_xshell恢复默认设置 如何还原系统 - Linux - 服务器之家
- 【程序填空】宠物管理
- 菜鸟学堂:为什么我的C盘那么大?总是磁盘空间不够用?
- c语言初学者 三字棋
- 2022-2028全球无人机探测雷达行业调研及趋势分析报告
- 12星座攻心策----白羊女
- python中demo函数_Python之函数
- 3 photolemur 样式_Photolemur 3 v1.1.0 for Mac 照片增强工具