名词解释

数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。

数组的常见概念

  • 数组名
  • 下标(或索引)
  • 元素
  • 数组的长度

数组的特点:

  1. 数组是有序排列的。
  2. 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。
  3. 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。
  4. 数组的长度一旦确定,就不能修改。
  5. 我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快。

数组的分类

  • 按照维度:一维数组、二维数组、三维数组、…
  • 按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组(即对象数组)

一维数组

一维数组的声明
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 一维数组相关推荐

  1. 小白自学笔记——JAVA基础 3.2 多维数组

    名词解释 Java 语言里提供了支持多维数组的语法. 如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格,像Excel中的表格一样. 对于二维数组的理解,我们可以看成是一维数组a ...

  2. 小白自学笔记——JAVA基础 0.1Java语言概述

    我学习的是宋红康老师的视频,首先是课程大纲. 课程大纲 课程体系 第1章 Java语言概述 第2章 基本语法 第3章 数组 第4章 面向对象编程(上) 第5章 面向对象编程(中) 第6章 面向对象编程 ...

  3. 小白自学笔记——JAVA基础 1.1常用的DOS文件

    今天开始自学JAVA第一课.看的是B站上宋红康老师的视频. 一 学习常用的DOS命令 在搜索栏输入'cmd'打开 eg1:打开D盘文件 [输入] D: eg2:列出当前文件夹下的所有文件 [输入] d ...

  4. 小白自学笔记——JAVA基础 2.5进制

    计算机中不同进制的使用说明 所有数字在计算机底层都以二进制形式存在. 对于整数,有四种表示方式: - 二进制(binary):0,1 ,满2进1.以0b或0B开头. - 十进制(decimal):0- ...

  5. 小白自学笔记——JAVA基础 2.2变量

    变量概述 概念: - 内存中的一个存储区域 - 该区域的数据可以在同一类型范围内不断变化 - 变量是程序中最基本的存储单元,包含变量类型.变量名和存储值 作用 - 用于在内存中保存数据 变量的使用 j ...

  6. 小白自学笔记——JAVA基础 2.9循环结构

    循环结构 在某些条件满足的情况下,反复执行特定代码的功能. 循环语句分类 for 循环 while 循环 do-while 循环 FOR循环结构 for (①初始化部分;②循环条件部分;④迭代部分){ ...

  7. 小白自学笔记——JAVA基础 2.8分支结构

    名词解释 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: 顺序结构 程序从上到下逐行地执 ...

  8. 小白自学笔记——JAVA基础 1.2JAVA语言环境搭建

    我使用的是JAVA8版本. 名词解释 JDK--Java Development Kit(JAVA开发工具包) JRE--Java Runtime Environment(JAVA运行环境) JDK. ...

  9. 小白自学笔记——JAVA基础 2.12 项目一 家庭记账软件

    需求说明 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 假设家庭起始的生活基本金为10000元. 每次登记收入(菜单2)后,收入的金额应 ...

最新文章

  1. Java基础--继承、this、super、抽象类
  2. 需求实在太旺盛,三星电子考虑扩大在华芯片产能
  3. zend studio安装xdebug调试工具
  4. mysql环境搭载后老出错_使用Docker在window10下搭建SWOFT开发环境,mysql连接错误
  5. LeetCode 452 用最少数量的箭引爆气球
  6. linux系统监控必备两款软件
  7. 监听器第一篇【基本概念、Servlet各个监听器】
  8. 导入要素类到要素数据集当中(C++)(ArcObject)史上最快
  9. Python中的函数(调用、参数、返回值、变量的作用域)
  10. mpls 保留标签值_浅析MPLS多协议标签交换的发展历程
  11. 内容营销——网络营销的杀手级武器
  12. ubuntu下从软件中心安装软件时的软件缓存目录
  13. LLVM各种格式转换图
  14. Linux配置Java环境变量 详解
  15. 软考(计算机软件水平考试)程序员介绍
  16. 将多个BIN文件合成一个
  17. 创建一个员工类(Employee),其中包括:1) 4个私有属性:员工姓名(name)、员工年龄(age)、员工职位(position)、工资(salary)
  18. 虚拟机2003服务器配置教程,虚拟机安装win2003及Ip配置.doc
  19. 程序员后端学习路线大体了解
  20. Vue 项目对接接口数据

热门文章

  1. 以三维地图和倾斜摄影为基础的CIM托底,以三维视频融合或投影融合为核心的时空克隆为引擎,以混合架构模式构建的魔镜平台,将成为元宇宙的主流 点卯+魔镜系列
  2. html提取正文字游戏名,游戏取名频道页.html
  3. 重装xshell的系统_xshell恢复默认设置 如何还原系统 - Linux - 服务器之家
  4. 【程序填空】宠物管理
  5. 菜鸟学堂:为什么我的C盘那么大?总是磁盘空间不够用?
  6. c语言初学者 三字棋
  7. 2022-2028全球无人机探测雷达行业调研及趋势分析报告
  8. 12星座攻心策----白羊女
  9. python中demo函数_Python之函数
  10. 3 photolemur 样式_Photolemur 3 v1.1.0 for Mac 照片增强工具