数组(Java)
数组的定义
- 数组是相同类型数据的有序集合
- 数组描述的是相同类型的若干数据,按照一定的先后次序排列组合而成
- 其中,每个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们
数组的声明和创建
基本介绍
- 首先必须声明数组变量,才能在程序中使用数组,声明数组变量的方法:
//数组类型 数组名
int[] nums;//(Java首选的方法)
int nums[];//(不是首选方法,在C和C++用的形式)
- Java语言使用new操作符来创建数组,语法如下:
//数组类型 数组名=new 数组类型【数组大小Size】
int[] nums=new int[10];
- 数组是通过索引访问的,数组索引从0开始(数组下标从0开始)
- 获取数组长度:array.length
运用实例
public class ChuangJian2 {
public static void main(String[] args) {
//数组的定义(声明):数组类型 数组名
int[] nums;
//数组的创建:数组类型 数组名=new 数组类型【数组大小Size】
int[] num=new int[4];
//给上面的数组的赋值
num[0]=0;
num[1]=1;
num[2]=2;
num[3]=3;
//num[4]=4; 执行此条语句会报错:ArrayIndexOutOfBoundsException(数组越界)
//计算所有元素的和
int sum=0;
for (int i = 0; i < num.length; i++) {
sum=sum+num[i];
}
System.out.println(sum);
}
}
数组的四个基本特点
- 数组的长度是确定的,数组一旦被创建,他的大小是不可以改变的
- 数组的元素必须是相同的类型,不允许出现混合类型
- 数组中的元素可以是任意数据类型,包括引用数据类型和基本数据类型
- 数组变量属于引用类型,数组也可以看成对象,数组中的每个元素相当于该对象的成员变量
- 数组本身就是对象,Java中对象在堆中,因此数组无论保存原始类型还是其他对象类型,数组对象本身就在堆中
- 数组边界:下标的合法区间:【0,length-1】,如果越界就会报错
运用实例
public class ChuShiHua3 {
public static void main(String[] args) {
//静态初始化:创建+赋值
int[] a={1,2,3,4};
System.out.println(a[0]);
//动态初始化:包含默认初始化
int[] b=new int[10];
b[1]=1;
System.out.println(b[1]);
System.out.println(b[0]);//未初始赋值,默认值为0
/*数组默认初始化
数组是引用类型,他的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐试初始化。
*/
}
}
数组使用
public class ShiYong4 {
//数组的使用
public static void main(String[] args) {
//普通For对数组的操作
int[] array={1,2,3,4,5};
//打印全部的数组元素
for (int i = 0; i < array.length; i++) {
System.out.println("数组第"+(i+1)+"元素为:"+array[i]);
}
//求数组所有元素的和
int sum=0;
for (int i = 0; i < array.length; i++) {
sum=sum+array[i];
}
System.out.println("总和为:sum="+sum);
//求数组元素中的最大值
int max=array[0];
for (int i = 1; i < array.length; i++) {
if (array[i]>max){
max=array[i];
}
}
System.out.println("数组中最大的数为:"+max);
//For-Each循环(增强for循环)
//打印数组全部元素
//for(定义一个数组变量(接受数组元素):需要输出的数组名)
for (int arrays:array){
System.out.println(arrays);
}
//数组作为方法使用
arr(array);
//把数组值反转
int[] fan=fan(array);
arr(fan);
}
//数组作为方法使用
public static void arr(int[] array){
for (int i = 0; i < array.length; i++) {
System.out.println("数组第"+(i+1)+"元素为:"+array[i]);
}
}
//把数组值反转
public static int[] fan(int[] array){
int[] result=new int[array.length];
//反转操作
for (int i = 0,j=result.length-1; i < array.length; i++,j--) {
result[j]=array[i];
}
return result;
}
}
多维数组
- 定义:多维数组可以看成数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组
二维数组:int[][] a=new int[2][5];
运用实例
public class DuoWei5 {
public static void main(String[] args) {
//数组[2][5]
int[][] a={{1,2},{2,3},{3,4},{4,5},{5,6}};
//a[0] 1,2
//a[1] 2,3
//a[2] 3,4
//a[3] 4,5
//a[4] 5,6
//数组作为方法使用
arr(a[0]);//打印出a[0] 1,2
//打印数组所有元素
for (int i = 0; i < a.length; i++) {
for (int j = 0; j <a[i].length ; j++) {
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
//数组作为方法使用
public static void arr(int[] array){
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
数组(Java)的更多相关文章
- 一维数组、二维数组——Java
一. 一维数组 1. 数组是相同类型数据的有序集合 相同类型的若干个数据,按照一定先后次序排列组合而成 每个数组元素可以通过一个下标来访问它们 其中,每一个数据称作一个数组元素 2. 数组特点: 其 ...
- 线性表(存储结构数组)--Java 实现
/*线性表的数组实现 *特点:插入删除慢需要平均移动一半的数据,查找较快 *注意:有重复和无重复的数据对应的操作会有些不同 *注意数组一旦创建其大小就固定了 *Java集合长度可变是由于创建新的数组将 ...
- 树形数组 java
2^k求法 int lowbit(int x) { return x&(-x); } lowbit()的返回值就是 2^k 次方的值. 基本树形数组的模板 import java.util.* ...
- 流程控制与数组——Java疯狂讲义
顺序结构 if分支语句 if{} 可以有多个else if{} else{} 可以省略 switch分支语句 while循环 do while循环 for循环 嵌套循环 控制循环结构 理解数 ...
- ACM-ICPC北京赛区(2017)网络赛2【后缀数组+Java//不会】
#1579 : Reverse Suffix Array 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 There is a strong data structure ...
- 合并K个有序数组-Java
package com.rao.algorithm; import java.util.Arrays; /** * @author Srao * @className MergeK * @date 2 ...
- 多线程循环打印数组 -- Java笔记
问题描述: 现有多个长度相同的数组,现要求使用多线程将数组内的数交替打印. 如: int[] ai = {1,2,3,4,5,6,7}; String[] ac = {"A",&q ...
- 13 数组 Java内存分析 三种初始化
Java内存分析 三种初始化 静态初始化 //静态初始化 创建+赋值 int[] a = {1,2,3}; Man[] mans = {new Man(1,1),new Man(2,2)}; 动态初始 ...
- 有序线性表(存储结构数组)--Java实现
/*有序数组:主要是为了提高查找的效率 *查找:无序数组--顺序查找,有序数组--折半查找 *其中插入比无序数组慢 * */ public class MyOrderedArray { private ...
- 优先队列(存储结构数组)--Java实现
/*优先队列--是对队列的一种改进 *要存储的数据存在优先级--数值小的优先级高--在队头 *优先队列的实现 *1.数组:适合数据量小的情况(没有用rear+front实现) *优先队列头在items ...
随机推荐
- skype网络异常无法登录
在有些win7电脑上安装最新版skype软件后,打开skype软件后显示无法访问网络 检查网络及防火墙,确定无异常 最后排查原因定位到操作系统的根证书 发现系统缺少部分DigiCert的根证书 从其他 ...
- unable to access 'https://github.com/.../...git': Recv failure: Connection was reset
解决git下载报错:fatal: unable to access 'https://github.com/.../...git': Recv failure: Connection was rese ...
- CAD中如何将图形对象快速转换成三维曲面?
天小编将接着上节内容给大家分享浩辰CAD软件中将图形对象快速转换成三维曲面的相关操作技巧,感兴趣的小伙伴可以和一起来了解一下哦! CAD中将图形转换为曲面的操作步骤: 1.用浩辰CAD软件中打开图纸后 ...
- VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory.
macOS VirtualBox Bridged Adapter 不能用 I'm running macOS High Sierra 10.13.1 and VirtualBox 5.2.2. Thi ...
- 2345 ip
121.201.101.43 img1.2345.com121.201.101.43 img2.2345.com121.201.101.43 img3.2345.com121.201.101.43 i ...
- vue-vite-ts 新版
Vue 后台管理系统 一.系统创建 1.1.环境检测 $ node -v v18.10.0 $ npm -v 9.1.2 ## 若没有该命令 需要用 npm install -g pnpm 安装 $ ...
- windows环境go安装和goland激活
1. go环境安装 1.1. go安装包下载 https://golang.google.cn/dl/ https://studygolang.com/dl 1.2. 安装go环境 1.2.1. 点击 ...
- Python3之并发(七)---线程同步队列(queue)
queue模块实现了多生产者,多消费者队列 queue模块的常用类和异常 queue.Queue(maxsize=0) 先进先出(FIFO)的队列, maxsize: 队列的大小(即队列的元素个数), ...
- java中获取指定日期是周几
可以使用Calendar日历工具类获取,代码如下: Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); ...
- SQL Server创建表,存储过程,function函数脚本规范
--创建新表 /**************************************************************************************** *** ...