Java中Arrays数组的定义与使用
初始化
Java中数组是固定长度,数组变量是个对象。
NullPointerException 空指针异常。
ArrayIndexOutOfBoundsException 索引值越界。
数组三种初始化的方式
int[] arr1 = {1,2,3};
int[] arr2 = new int[]{1,2,3};
int[] arr3 = new int[3];
arr[0]=1;
arr[1]=2;
arr[2]=3;
遍历
var声明变量是jdk10以后的方法
public class Arr {
public static void main(String[] args) {
//数组是固定长度,声明后不能调整大小
int[] a = new int[]{1, 2, 3};
System.out.println(a.length);//3
System.out.println(a[2]);//3
//a[3] = 6; 将会报错 数组是固定长度,不能调整大小
//遍历一 1,2,3
for (var i : a) {
System.out.println(i);
}
//遍历二 1,2,3
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
//遍历三 倒序遍历 3,2,1
for (int i = a.length - 1; i >= 0; i--) {
System.out.println(a[i]);
}
//遍历四 java8 lambda 表达式遍历方式
Arrays.stream(a).forEach(System.out::println);
//使用Arrays工具类,sort方法,排序(升序)
//Arrays.sort(n);
//升序 此排序要求使用对象,int 需要修改为Integer对象
//Arrays.sort(n, (a, b) -> a - b);
//降序
//Arrays.sort(n, (a, b) -> b - a);
//排序后遍历输出
//for (var e : n) {
//System.out.printf("%d ", e);
// }
}
}
冒泡排序
public class test4 {
public static void main(String[] args) {
//随机生成10个100以内的数
Random rand = new Random();
int[] nums = new int[10];
for (int i = 0; i < nums.length; i++) {
nums[i] = rand.nextInt(100) + 1;
}
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length - 1 - i; j++) {
if (nums[j] > nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
//遍历数组
for (var i : nums) {
System.out.print(i + "\t");
}
}
二维数组
//二维
int[][] arr1 = new int[3][3];
int[][] arr2 = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9,10}};
System.out.println(arr2[1][2]);//6
System.out.println(arr2[2][3]);//10
//遍历二维数组
for (int[] a : arr2) {
for (int a1 : a) {
System.out.printf("%d ", a1);
}
System.out.println();
}
}
Arrays工具类
public class Arrays1 {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5, 6, 7};
System.out.println(arr1.length);//7
System.out.println(arr1);//[I@119d7047
//数组转字符串
System.out.println(Arrays.toString(arr1)); //[1, 2, 3, 4, 5, 6, 7]
//填充数组
int[] arr2 = new int[6];
Arrays.fill(arr2, 3);
System.out.println(Arrays.toString(arr2));
Arrays.fill(arr2, 1, 2, 10);
Random rand = new Random();
Arrays.fill(arr2, rand.nextInt(100) + 1);
System.out.println(Arrays.toString(c));
Integer[] arr3 = new Integer[]{3, 1, 0, 10, 60, 20, 35, 99};
System.out.println(Arrays.toString(arr3));
//Arrays.sort(arr3);
Arrays.sort(arr3, (x, y) -> x - y);//升序
Arrays.sort(arr3, (x, y) -> y - x);//降序
System.out.println(Arrays.toString(arr3));
String[] arr4 = new String[]{"an", "javascript", "egg", "book", "user", "zoo", "c", "c++"};
System.out.println(Arrays.toString(arr4));
//Arrays.sort(arr4);
//升序,按字母顺序
Arrays.sort(arr4, (s1, s2) -> s1.compareTo(s2));
//降序
Arrays.sort(arr4, (s1, s2) -> s2.compareTo(s1));
//数组的长度
Arrays.sort(arr4, (s1, s2) -> s1.length() - s2.length());
Arrays.sort(arr4, (s1, s2) -> s2.length() - s1.length());
System.out.println(Arrays.toString(arr4));
}
Java中Arrays数组的定义与使用的更多相关文章
- JAVA中关于数组的定义
前些日子,有网友问:在JAVA中 int[] a 这样定义的数组和 int a[] 定义的数组有什么区别? 当时没有细看,直接回复说,在JAVA中,两者是一样的,没有区别. 回头仔细看时,还是稍有区别 ...
- Java中Arrays数组工具类的使用全解
本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助. 码字不易,三连支持一下吧 Arrays数组工具类 方法一览表 快 ...
- java中一维数组的定义和遍历
public class ArrayDemo1{ public static void main(String[] args){ //1 定义数组 并同时赋值 int[] arr = new int[ ...
- java中Arrays.sort()对二位数组进行排序
int [][]a = new int [5][2]; //定义一个二维数组,其中所包含的一维数组具有两个元素 对于一个已定义的二位数组a经行如下规则排序,首先按照每一个对应的一维数组第一个元素进行升 ...
- 【JAVA零基础入门系列】Day10 Java中的数组
什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...
- Java中的数组与集合
此文转载自:http://student-lp.iteye.com/blog/2082362 在java编程的过程中,我们不能确定某一类型的对象到底会需要多少,为了解决这个问题,java提供了容纳对象 ...
- Java中JNI的使用详解第五篇:C/C++中操作Java中的数组
在Java中数组分为两种: 1.基本类型数组 2.对象类型(Object[])的数组(数组中存放的是指向Java对象中的引用) 一个能通用于两种不同类型数组的函数: GetArrayLength(ja ...
- 慕课网-安卓工程师初养成-6-3 如何使用 Java 中的数组
来源:http://www.imooc.com/code/1525 Java 中操作数组只需要四个步骤: 1. 声明数组 语法: 或者 其中,数组名可以是任意合法的变量名,如: 2. 分配空间 简 ...
- Java中的数组操作进阶
package com.mi.array; import java.util.Arrays; /** * System.arraycopy(i, 0, j, 0, i.length);这种复制会覆盖目 ...
随机推荐
- [源码解析] 深度学习分布式训练框架 horovod (6) --- 后台线程架构
[源码解析] 深度学习分布式训练框架 horovod (6) --- 后台线程架构 目录 [源码解析] 深度学习分布式训练框架 horovod (6) --- 后台线程架构 0x00 摘要 0x01 ...
- MySQL到ClickHouse实时同步-CloudCanal实战
简述 CloudCanal 近期实现了 MySQL(RDS) 到 ClickHouse 实时同步的能力,功能包含全量数据迁移.增量数据迁移.结构迁移能力,以及附带的监控.告警.HA等能力(平台自带). ...
- Redis6使用指导(完整版)
一.Nosql与Redis概述 二.Redis6安装 三.常用五大数据类型 四.Redis6配置文件详解 五.Redis6的发布和订阅 六.Redis6新数据类型 七.Jedis操作Redis6(Ma ...
- vue elementui table 内按钮跳转页面
vue : <el-table-column label="操作" v-if="isColumOperate"> <template slot ...
- JVM到底是什么呢
在我们运行和调试Java程序的时候,经常会提到一个JVM的概念.那JVM到底是什么呢? JVM是Java程序的运行环境,它同时也是一个操作系统的一个应用程序.一个进程,因此他也有他自己的运行生命周期, ...
- Web自动化之iframe切换
一.如何判断元素是否在iframe中 选中要操作的元素,通过下方的父节点查看是否存在iframe,存在则元素在iframe,需要切换至iframe中进行元素的操作 二.iframe切换方式一 1.方式 ...
- 适合企业的CRM系统选型法则?
在市场竞争激烈的今天,企业需要找到一款好用的企业CRM系统来帮助维护客户关系,同时也能够帮助企业进行销售管理.营销管理,CRM可以说是当代企业管理的最强工具之一.那么适合企业的CRM客户管理系统要如何 ...
- Https:证书生成 .p12 .keyStore 和 .truststore文件理解
当我们需要SSL证书时,可以自动生成SSL证书,但是每个系统都申请一次证书会比较麻烦,所以用到了如下几个文件格式: .p12(PKCS #12) 我们的每一个证书都可以生成一个.p12文件,这个文 ...
- redis学习笔记(一)——windows下redis的安装与配置
前言 很久没有写东西了(.......我的水平就是记个笔记),北漂实习的我,每天晚上回来都不想动,但是做为社会主义接班人的我,还是要时刻给自己充充电,趁着年轻,趁着日渐脱发的脑袋还没有成为" ...
- Spring boot中相关的注解
一.相关类中使用的注解 @RestController:REST风格的控制器 @RequestMapping:配置URL和方法之间的映射 @SpringBootApplication:应用程序入口类 ...