数组的定义

  1. 数组是相同类型数据的有序集合
  2. 数组描述的是相同类型的若干数据,按照一定的先后次序排列组合而成
  3. 其中,每个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们

数组的声明和创建

基本介绍

  • 首先必须声明数组变量,才能在程序中使用数组,声明数组变量的方法:
    //数组类型 数组名
    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)的更多相关文章

  1. 一维数组、二维数组——Java

    一. 一维数组 1.  数组是相同类型数据的有序集合 相同类型的若干个数据,按照一定先后次序排列组合而成 每个数组元素可以通过一个下标来访问它们 其中,每一个数据称作一个数组元素 2. 数组特点: 其 ...

  2. 线性表(存储结构数组)--Java 实现

    /*线性表的数组实现 *特点:插入删除慢需要平均移动一半的数据,查找较快 *注意:有重复和无重复的数据对应的操作会有些不同 *注意数组一旦创建其大小就固定了 *Java集合长度可变是由于创建新的数组将 ...

  3. 树形数组 java

    2^k求法 int lowbit(int x) { return x&(-x); } lowbit()的返回值就是 2^k 次方的值. 基本树形数组的模板 import java.util.* ...

  4. 流程控制与数组——Java疯狂讲义

    顺序结构 if分支语句      if{} 可以有多个else if{} else{} 可以省略 switch分支语句 while循环 do while循环 for循环 嵌套循环 控制循环结构 理解数 ...

  5. ACM-ICPC北京赛区(2017)网络赛2【后缀数组+Java//不会】

    #1579 : Reverse Suffix Array 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 There is a strong data structure ...

  6. 合并K个有序数组-Java

    package com.rao.algorithm; import java.util.Arrays; /** * @author Srao * @className MergeK * @date 2 ...

  7. 多线程循环打印数组 -- Java笔记

    问题描述: 现有多个长度相同的数组,现要求使用多线程将数组内的数交替打印. 如: int[] ai = {1,2,3,4,5,6,7}; String[] ac = {"A",&q ...

  8. 13 数组 Java内存分析 三种初始化

    Java内存分析 三种初始化 静态初始化 //静态初始化 创建+赋值 int[] a = {1,2,3}; Man[] mans = {new Man(1,1),new Man(2,2)}; 动态初始 ...

  9. 有序线性表(存储结构数组)--Java实现

    /*有序数组:主要是为了提高查找的效率 *查找:无序数组--顺序查找,有序数组--折半查找 *其中插入比无序数组慢 * */ public class MyOrderedArray { private ...

  10. 优先队列(存储结构数组)--Java实现

    /*优先队列--是对队列的一种改进 *要存储的数据存在优先级--数值小的优先级高--在队头 *优先队列的实现 *1.数组:适合数据量小的情况(没有用rear+front实现) *优先队列头在items ...

随机推荐

  1. javascript获取浏览器窗口分辨率|浏览器全屏分辨率|屏幕分辨率

    浏览器窗口分辨率指显示网页的区域,在PC端由于浏览器窗口大小可调节,这个值是可变的.在手机等移动端浏览器窗口大小不可调节,宽度值是固定的,但竖屏和横屏切换会改变. 浏览器全屏分辨率是指浏览器启用全屏显 ...

  2. joda实现时间工具类

    1.获取当前时间 (底层代码一致) val time1 = new DateTime() val time2 = DateTime.now() //底层调用的就是new DateTime() 2.格式 ...

  3. jsonpath表达式

    JsonPath是一种简单的方法来提取给定JSON文档的部分内容,其中正则表达式的包含或不包含配制有时候非常有用! json操作实例 { "store": { "book ...

  4. yolo v7使用triton部署

    https://github.com/WongKinYiu/yolov7/tree/main/deploy/triton-inference-server

  5. git 代码提交到github 回滚到上一版本

    1.项目所在目录>git log(查看提交日志) commit idCodeAuthor: XXXXDate: Tue Mar 6 15:10:59 2018 +0800 commit idCo ...

  6. list.size() = 1 但显示 All elements are null

    https://blog.csdn.net/weixin_43899069/article/details/124668722 if (CollectionUtils.isNotEmpty(list) ...

  7. HiveServer2启动报TezConfiguration类NoClassDefFoundError错误

    错误信息如下: 2021-01-03 20:11:26,355 WARN [main] server.HiveServer2: Error starting HiveServer2 on attemp ...

  8. 页面布局 Stack 层叠组件 Stack 与 Align Stack 与 Positioned 实现定位布局

    一.Flutter Stack 组件 Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局 属性 说明 ...

  9. ConstantBuffer

    Constant Buffer的高效使用,让你码出质量 https://zhuanlan.zhihu.com/p/35830868 Unity ConstantBuffer的一些解析和注意 https ...

  10. HDLbits——Shift18

    // Build a 64-bit arithmetic shift register, // with synchronous load. The shifter can shift both le ...