初始化

Java中数组是固定长度,数组变量是个对象。

  1. NullPointerException 空指针异常。

  2. 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数组的定义与使用的更多相关文章

  1. JAVA中关于数组的定义

    前些日子,有网友问:在JAVA中 int[] a 这样定义的数组和 int a[] 定义的数组有什么区别? 当时没有细看,直接回复说,在JAVA中,两者是一样的,没有区别. 回头仔细看时,还是稍有区别 ...

  2. Java中Arrays数组工具类的使用全解

    本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助. 码字不易,三连支持一下吧 Arrays数组工具类 方法一览表 快 ...

  3. java中一维数组的定义和遍历

    public class ArrayDemo1{ public static void main(String[] args){ //1 定义数组 并同时赋值 int[] arr = new int[ ...

  4. java中Arrays.sort()对二位数组进行排序

    int [][]a = new int [5][2]; //定义一个二维数组,其中所包含的一维数组具有两个元素 对于一个已定义的二位数组a经行如下规则排序,首先按照每一个对应的一维数组第一个元素进行升 ...

  5. 【JAVA零基础入门系列】Day10 Java中的数组

    什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...

  6. Java中的数组与集合

    此文转载自:http://student-lp.iteye.com/blog/2082362 在java编程的过程中,我们不能确定某一类型的对象到底会需要多少,为了解决这个问题,java提供了容纳对象 ...

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

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

  8. 慕课网-安卓工程师初养成-6-3 如何使用 Java 中的数组

    来源:http://www.imooc.com/code/1525 Java 中操作数组只需要四个步骤: 1. 声明数组 语法:  或者  其中,数组名可以是任意合法的变量名,如: 2. 分配空间 简 ...

  9. Java中的数组操作进阶

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

随机推荐

  1. Fiddler手机抓包配置指南

    前言: 对于开发.测试而言,抓包工具绝对是我们日常测试找bug的必备神器.今天主要介绍的是如何配置Fiddler抓取移动端app请求.首先Fiddler是一个http协议调试代理工具,它能够记录并检查 ...

  2. 【进阶之路】深入理解Java虚拟机的类加载机制(长文)

    我们在参加面试的时候,经常被问到一些关于类加载机制的问题,也都会在面试之前准备的时候背好答案,但是我们是否有去深入了解什么是类加载机制呢?这段时间因为一些事情在家看了些书,这次就和大家分享一些关于Ja ...

  3. 精尽Spring Boot源码分析 - 文章导读

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  4. Redis 底层数据结构之压缩列表

    文章参考:<Redis 设计与实现>黄建宏 压缩列表 压缩列表 ziplist 是列表键和哈希键的底层实现之一.当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比 ...

  5. linux之软连接 硬链接 link ln

    p.p1 { margin: 0; font: 12px "Helvetica Neue"; color: rgba(220, 161, 13, 1) } p.p2 { margi ...

  6. 利用漏洞破解win7密码

    一.利用5次shift漏洞破解win7密码 1.在未登录系统时,连续按5次shift键,弹出程序:C:\Windows\system32\sethc.exe 2.部分win7及win10可通过系统修复 ...

  7. CF1539C Stable Groups[题解]

    Stable Groups 题目大意 给定 \(n\) 个数 \(a_i\) ,你可以将这些数分成若干组,但每一组的元素满足按升序排列后,相邻两个元素值的差不超过 \(x\) .在分组前,你可以向这些 ...

  8. C语言:标识符 关键字 保留字 表达式 语句

    标识符(Identifier)标识符就是程序员自己起的名字,符号常量(宏).变量名.函数名.宏名.结构体名等,它们都是标识符.遵守规范:C语言规定,标识符只能由字母(A~Z, a~z).数字(0~9) ...

  9. C语言:2.1

    int main() { char zi='A'; short bla=10; int blb=20; long blc=30; float bld=340.56; double ble=34.324 ...

  10. 案例分享:Qt+Arm基于RV1126平台的内窥镜软硬整套解决方案(实时影像、冻结、拍照、录像、背光调整、硬件光源调整,其他产品也可使用该平台,如视频监控,物联网产品等等)

    自研产品系列方案   1. 基于瑞芯微的 RV1126 芯片平台:  2. 外接 USB 摄像头(OV9734. OV6946.OV2740 等 UVC 模块)作为图像输入源:  3. 可通过 LED ...