【概述】

有时候,我们需要某类的变量,它们是用于表达同一类的东西,但每个个体有不一样,比如学生成绩表的各个成绩

我们不可能为每个学生单独建立一个int变量来表示成绩,此时我们可以创建一个数组,再把每个学生的数据输进去

数组,可以看作一组数的集合————当然不仅限于数,String,char,boolean等也行

【创建数组】

数组的大小代表着数组可以存储多少的数据,最重要的是,数组的大小一旦确定,就不能改变

一般而言,我们声明数组需要说明数组类型,数组名字,以及该数组的大小:

myFirstArray = new int[5];
int[]myFirstArray= new int[5];

上面两行代码的结果是一样的:创建了一个大小为5的int数组

当然,我们也可以在声明数组的时候直接给它赋值:

int[]myFirstArray= {1,1,1,1,1};

需要注意的是,申明到赋值的初始化需要一次性完成,不能分开来

【数组使用】

和String一样,数组也有它的下标且也是从0开始计算。A[i] 代表A数组的第i位所代表的值

比如对于

int[]myFirstArray= {1,4,7,3,11};

myFirstArray[3]的值就是7

遍历数组

利用for循环达到遍历的目的

  int[]myFirstArray= new int[5];
for (int i = 0 ; i <= 4 ; i++){
myFirstArray[i] = 1;
}

上述代码就遍历了数组,并把值赋为1

另外.length可以得到数组的大小,比如上述例中,myFirstArray.length = 5

遍历数组的代码可以模板化为

  int[]A= new int[5];
for (int i = 0 ; i < A.length ; i++){
//注意是 i小于数组的大小,不然会造成越界
A[i] = 1;//当然也可以是其它操作,比如打印
}

【数组方法】

如果数组方法来自Arrays.XX,则需要import java.util.Arrays;

1.复制数组

System.arraycopy(源数组, 复制起始位置(int), 目标数组, 目标数组的起始位置, 复制长度);

int[]arr1 = { 0, 1, 2, 3, 4, 5};
int[]arr2 = { 0, 10, 20, 30, 40, 50};
System.arraycopy(arr1, 0, arr2, 0,6);

Arrays.copyOf(源数组, 复制数目);

double[] arrayOne= { 1.1, 2.2, 3.3, 4.4, 5.5 };
double[] arrayTwo= Arrays.copyOf(arrayOne, arrayOne.length);

Array.clone()

double[] arrayOne= { 1.1, 2.2, 3.3, 4.4, 5.5 };
double[] arrayTwo= arrayOne.clone();

2.其它

Arrays.toString(Arrayname)

Arrays.sort(Arrayname)

Arrays.fill(Arrayname, value_to_fill)

Arrays.equals(Array1, Array2)

Arrays.binarySearch(Arrayname, value_to_search)

【二维数组】

前文我们以及讲述了一维数组————把它当作一个排序的队伍就好了,下面介绍一下二维数组

二维数组有两个重要的变量————行row和列column,二维数组中的数据的排布是有二维性的

创建二维数组

和一维数组一样,不过是把[]增加为[][],表示这是个二维的玩意

int[][] results=newint[7][5];

这里就创建了一个7行5列的数组,也就是在横向上一行最多存储7个数据,纵向上则是5个

另外,也可以一开始就完成初始化

int[][] myArray={{8,1,2,2,9},{1,9,4,0,3},{0,3,0,0,7}};

顺便一提,初始化的时候可以只初始化行,但是不能只初始化列

我们也可以初始化一个非矩形数组

二维数组也是从0开始计算的,且表达的时候是根据“先行后列”(row first, then column)来进行位置确认的

比如上方这个数组(用图表表达了),我们输入

int a = results[6][2]

a得到的值便会是78

遍历二维数组

这里用到了“嵌套循环”,不仅在遍历二维数组,在很多地方这也是很重要的

比如此时我们有一个二维数组board,我们可以这么遍历它

for (int i = 0; i < rows;i++){
for (int j = 0; j < columns; j++){
board[i][j] = "";
}
}

这里的rowscolumns代表的就是行和列的长度,我们可以手动输入,也可以利用方法得到这个值

A.length : 得到A数组行的大小

A[0].length :得到A数组列的大小。实质是得到A数组中的第[0]行包含的元素,我们这里讨论的都是行列值处处相等的数组,所以 A[0].length 得到的就是列的大小

【Java】8.0 数组及其操作的更多相关文章

  1. java基础之数组常用操作

    常用的对数组进行的操作 1.求数组中最大值,最小值 思路:假设下标为0的元素是最大值,遍历数组,依次跟max进行比较,如果有元素比这个max还大,则把这个值赋给max.最小值同样 public cla ...

  2. Java中对数组的操作

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对于数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素.如:声明一个数组变量,numbers[100]来 ...

  3. JAVA中,数组的操作与排序

    自己写了正向反向的冒泡排序,还用了静态和NEW方法实现. import java.util.Arrays; public class HelloJava { public static void ma ...

  4. Java中JNI的使用详解第五篇:C/C++中操作Java中的数组

    在Java中数组分为两种: 1.基本类型数组 2.对象类型(Object[])的数组(数组中存放的是指向Java对象中的引用) 一个能通用于两种不同类型数组的函数: GetArrayLength(ja ...

  5. day05<Java语言基础--数组>

    Java语言基础(数组概述和定义格式说明) Java语言基础(数组的初始化动态初始化) Java语言基础(Java中的内存分配以及栈和堆的区别) Java语言基础(数组的内存图解1一个数组) Java ...

  6. Java 语言基础之数组常见操作

    对数组操作最基本的动作: 存和取 核心思想: 就是对角标的操作 数组常见操作: 1, 遍历 2, 获取最大值和最小值 3, 排序 4, 查找 5, 折半查找 // 1. 遍历 int[] arr = ...

  7. Java学习笔记十:Java的数组以及操作数组

    Java的数组以及操作数组 一:什么是数组: 数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学生的成绩 数组中的元 ...

  8. Java中的数组操作进阶

    package com.mi.array; import java.util.Arrays; /** * System.arraycopy(i, 0, j, 0, i.length);这种复制会覆盖目 ...

  9. java学习第05天(数组常见操作、数组中的数组)

    (4)数组常见操作 a.遍历取值 class ArrayDemo3 { public static void main(String[] args) { //System.out.println(&q ...

随机推荐

  1. XML & XPath & XQuery

    XML & XPath & XQuery full XPath demo https://www.w3.org/TR/xpath-full-text-30/ https://www.w ...

  2. 【Python】面向对象:类与继承简单示例

    Python 面向对象 Python 是一门面向对象的设计语言,与此对应的就是面向过程编程与函数式编程 面向对象的一个优点就是更好的增强代码的重用性. 面向过程编程可以简单的理解为:重点在步骤,将一个 ...

  3. 010_HTML5

    目录 初识HTML 什么是HTML HTML发展史 HTML5的优势 W3C标准 常见IDE IDEA开发HTML IDEA创建HTML文件,并用浏览器打开 配置浏览器 HTML基础 HTML基本结构 ...

  4. 记录一次gitlab版本回退以及代码冲突解决流程

    版本回退 git clone -b 分支名 项目地址 克隆需要回退的分支代码 git pull    保证代码提交记录最新 git log --pretty=oneline    以行的形式展示提交记 ...

  5. Spring Security 实战干货:OAuth2登录获取Token的核心逻辑

    1. 前言 在上一篇Spring Security 实战干货:OAuth2授权回调的核心认证流程中,我们讲了当第三方同意授权后会调用redirectUri发送回执给我们的服务器.我们的服务器拿到一个中 ...

  6. springCloud中的注册中心Nacos

    springCloud中的注册中心Nacos 三个模块: 1.注册中心 2.服务提供者(生产者) 提供服务 3.服务消费者(消费者)调用服务 流程:消费者和生产者都要向注册中心注册,注册的是二者中服务 ...

  7. SpringBoot(四): SpringBoot web开发 SpringBoot使用jsp

    1.在SpringBoot中使用jsp,需要在pom.xml文件中添加依赖 <!--引入Spring Boot内嵌的Tomcat对JSP的解析包--> <dependency> ...

  8. 最近没事DIY了个6通道航模遥控器

    在网上买了个外壳,挖空后换成自己的电路版. 开机后图: 液晶屏是320x240的,没有合适的贴纸,直接就这么用了 遥控器的内部电路有点乱哈,没办法,低成本就只能全靠跳线了 还好都能正常工作. 接收器也 ...

  9. virtualbox-centos扩容

    virtualbox-centos扩容 版本信息 virtualbox:版本 6.1.4 r136177 (Qt5.6.2) centos:CentOS Linux release 7.7.1908 ...

  10. 001-深度学习Pytorch环境搭建(Anaconda , PyCharm导入)

    001-深度学习Pytorch环境搭建(Anaconda , PyCharm导入) 在开始搭建之前我们先说一下本次主要安装的东西有哪些. anaconda 3:第三方包管理软件. 这个玩意可以看作是一 ...