day06数组、数组声明和赋值、数组复制、数组排序
复习
1.do-while
1)语法
do{
//循环体
}while(<条件>);
2.while和do-while
1)while
先判断,后执行
初始条件不满足,一次都不执行
2)do-while
先执行,后判断
初始条件不满足,也会至少执行一次
3.for循环
1)语法
for(表达式1;表达式2;表达式3){
//循环体
}
4.循环流控
1)break
跳出,终止循环
2)continue
跳过本次循环,继续下次循环
5.循环嵌套
1)什么是循环嵌套
2)循环嵌套的注意事项
笔记
1.数组
1)什么是数组
数组就是一种能够保存
多个相同数据类型数据的变量
2)为什么使用数组
在处理较多同类型数据时
可以使用数组减少代码冗余
3)数组的组成
3.1)数组名称
3.2)数组元素
3.3)数组长度
3.4)数组下标
4)数组的声明
<类型>[] <数组名>;
int[] nums;
int nums[];//不推荐
5)数组的初始化
<数组名>=new <类型>[<长度>];
nums=new int[5];
合二为一
int[] nums=new int[5];
6)数组的使用
使用原则:使用元素的下标来指定元素
<数组名>[<下标>]=...;
nums[0]=12;
System.out.println(nums[0]);
nums[1]=nums[0]+8;
7)数组的遍历
遍历就是访问数组中所有元素一遍
只要是对数组的遍历
就使用循环(for循环)
8)数组长度的获取
<数组名>.length;
一个数组第一个元素的下标:
0
一个数组最后一个元素的下标:
<数组名>.length-1
2.使用数组的注意事项
1)数组初始化之后
元素都有默认值
(0\0.0\false)
2)数组初始化后
长度不能修改
3)使用数组下标时
要小心数组下标越界
3.数组声明时赋值;
1)int[] nums={9,3,6,4,7,1,8};
必须声明后立即使用{}赋值
2)int[] nums;
nums=new int[]{5,7,1,9,3,6,3,8};
数组声明后,可以使用new int[]{}
来赋值
4.数组的引用类型特征
当一个数组通过=赋值给另一个数组时
这两个数组是相同的引用
会造成修改A数组同时影响B数组的情况
为了避免这种情况要掌握数组
复制的操作
5.数组复制
1)复制一个和数组完全相同或部分相同的新数组
2)数组复制的方法
2.1)手动编写for循环复制数组
2.2)System.arraycopy(1,2,3,4,5);
1源数组
2从源数组复制的起始位置
3新数组
4新数组起始位置
5复制元素的个数
2.3)Arrays.copyOf(1,2);
1.源数组
2.复制几个
Arrays.copyOf()的特性导致
在程序中
需要数组扩容或缩容时
优先使用该方法
6.数组排序
1)将数组中的元素按照顺序排列的操作
2)使用java提供的排序方法
Arrays.sort(1);
1.要排序的数组
排序之后,数组中的元素
会以升序方式排列
如果想得到降序数组
需要使用"逆序输出"
3)我们也可以自己编写代码来对数组进行排序
作业
1)有5个学生成绩分别为75,92,63,70,88
将这5个成绩放入数组后遍历输出
int[] nums={75,92,63,70,88};
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
2)有5个商品价格分别为25.7 , 12.4 , 8.0 , 3.6 , 6.8
将这个5个价格放入输出后遍历输出,并计算5个商品价格之和
double total = 0;
double[] prices = { 25.7, 12.4, 8.0, 3.6, 6.8 };
for (int i = 0; i < prices.length; i++) {
System.out.println(prices[i]);
total += prices[i];
}
System.out.println("价格之和:" + total);
3)定义一个长度为8的数组, 输出这个数组中的最大值
int[] nums = { 8, 7, 3, 9, 5, 4, 1, 6 };
int max = nums[0];// 默认第一个最大
for (int i = 0; i < nums.length; i++) {
if (nums[i] > max) {
max = nums[i];
}
}
System.out.println("最大值: " + max);
数组复制
1)int[] num={7,6,3,9,8,4,1,2};
想通过数组复制,得到以下数组内容
arr : {0,0,9,8,4,0,0};
int[] nums= {7,6,3,9,8,4,1,2}; //1.定义一个新数组,用于接收源数组的数据
int[] arr=new int[nums.length-1];
//{0,0,0,0,0,0,0,0}; //2.进行数组复制
System.arraycopy(nums,3,arr,2,3); //3.输出
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i] +" ");
}
2)Arrays.copyOf():
int[] nums={1,2,3,4,5,6};
通过数组扩容, 得到以下数组
arr: {1,2,3,4,5,6,0,0,0}
int[] nums = { 1, 2, 3, 4, 5, 6 };
// 1.复制数组并赋给新的数组变量
int[] arr = Arrays.copyOf(nums, nums.length + 3);
// 2.输出数组数据
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
day06数组、数组声明和赋值、数组复制、数组排序的更多相关文章
- js数组的声明与应用
js数组的声明与应用 数组:一种容器,存储批量数据.JavaScript是一种弱类型语言.什么是弱类型,就是变量可以存储多种类型变量的引用不会报错.所以js数组可以存储不同的数据. 一.数组的作用:只 ...
- C++二维数组讲解、二维数组的声明和初始化
我们知道,一维空间是一条线,数学中用一条数轴来表达:二维空间是一个平面,数学中用平面坐标系来表达.那么二维数组又是什么样的呢? 线与面 我们用一个下标来描述一维数组中的某个元素,就好像在用数描述一条线 ...
- IT兄弟连 Java语法教程 数组 多维数组 二维数组的声明
Java语言里提供了支持多维数组的语法.但是这里还想说,从数组底层的运行机制上来看是没有多维数组的. Java语言里的数组类型是引用类型,因此数组变量其实是一个引用,这个引用指向真实的数组内存,数组元 ...
- Java基础:数组的声明,循环,赋值,拷贝。
数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a真正的初始化为一个数组 ...
- C#数组的声明方式
C#数组的五种声明方式 一.声明一个未经初始化的数组引用,以后可以把这引用初使化为一个数组实例 int[] intArray; intArray = new int[10]; 注:数组的引用必须以相同 ...
- 关于Delphi中二维数组的声明和大小调整(对非基本类型数据,小心内存泄漏)
这是一个实例: procedure TMainForm.Button1Click(Sender: TObject);var arr:array of array of string;begin s ...
- java数组的声明由几种方式
数组的声明由几种方式: 1,String []a = new String[length];再赋值 a[0]=?;....... 2,new完就直接初始化: String []a = new Stri ...
- Java数组的声明和遍历
Java 数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java 语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如 n ...
- ES6_入门(4)_数组的解构赋值
//2017/7/14 //变量的解构赋值(解构:Destructuring) //(1)数组的解构赋值 let [a,b,c]=[1,2,3];//模式匹配,只要等号两边的模式相同,左边的变量就会被 ...
随机推荐
- SpringCloud Sleuth + Zipkin 实现链路追踪
一.Sleuth介绍 为什么要使用微服务跟踪? 它解决了什么问题? 1.微服务的现状? 随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂 ...
- 使用 sroll-snap-type 优化滚动
根据 CSS Scroll Snap Module Level 1 规范,CSS 新增了一批能够控制滚动的属性,让滚动能够在仅仅通过 CSS 的控制下,得到许多原本需要 JS 脚本介入才能实现的美好交 ...
- 详解在Linux系统中安装Tomcat
本文以在CentOS 7.6中安装Tomcat8.5为例进行安装,其他系统和版本都是大同小异的. 安装JDK 安装Tomcat之前,需要先安装JDK,可以参看之前的文章详解在Linux系统中安装JDK ...
- Python报错ERROR: Command errored out with exit status 1:
解决方法: 1.以管理员身份打开cmd 2.pip install robotframework-AutoItLibrary (本次安装时Python基于3.7.3,pip为最新版本) 3.安装成功
- docker的安装及常用命令
一:概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用 ...
- 实现一个简单的散列表(HashMap)
下面参考java.util.HashMap<K, V>,写了一个简单的散列表,只实现了其中的put和get方法,使用链接法"碰撞冲突".代码最后,自定义了一个Peopl ...
- std::unique_ptr的用法
std::ofstream("demo.txt") << 'x'; // 准备要读的文件 { std::unique_ptr<std::FILE, decltyp ...
- nmon脚本——对Linux服务器的监控
继服务器被挖之后,我又开拓了另一个监控工具----nmon! Nmon可以很轻松的监控系统的CPU.内存.网络.硬盘.文件系统.NFS.高耗进程.资源和IBM Power系统的微分区的信息,还有专属的 ...
- JSSDK制作思路
需求:对外提供一个js的SDK.相当于在原有的原生SDK基础上包装一层方法. SDK原生的方法通过JSExport 协议可以让js调用到原生的方法.你可以写一个协议继承JSExport ,将需要对js ...
- Reachability的使用
刚到一家新公司 做新项目 关于网络状态的监听和同事产生了不一样的看法 原来我的网络监听都是自己写的 后来发现自己不是一般的傻 有一个叫做Reachability的东西 很简单 很实用 很暴力 下面就是 ...