初始化

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. 测试开发之网络篇-IP地址

    IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异.这里介绍一下目前广泛使用的IPv4版本. IP地址使用一种统一的格式,为互联 ...

  2. 信息熵,交叉熵与KL散度

    一.信息熵 若一个离散随机变量 \(X\) 的可能取值为 \(X = \{ x_{1}, x_{2},...,x_{n}\}\),且对应的概率为: \[p(x_{i}) = p(X=x_{i}) \] ...

  3. MaterialDesignInXamlToolkit“无法绑定到目标方法,因其签名或安全透明度与委托类型的签名或安全透明度不兼容”异常的解决思路

    前言: 最初是想解答园友"小代码大世界 "的问题,后来想举一反三,将这个问题简单剖析下,做到知其所以然. MaterialDesignInXAML 控件库高度封装,有一些控件在使用 ...

  4. Centos7安装部署搭建gitlab平台、汉化

    Centos7安装部署搭建gitlab平台.汉化 安装环境要求:内存不要小于4G,否则后期web界面可能会报错 一.准备工作 1.1 查看系统版本 首先查询系统版本,下载Gitlab的对应版本 [ro ...

  5. 动态路由协议与RIP配置

    一.动态路由的概述 二.RIP路由协议工作原理 三.水平分割 四.RIP路由协议v1与v2的区别 五.实验配置 一.动态路由的概述 1.定义 动态路由是指利用路由器上运行的动态路由协议定期和其他路由器 ...

  6. js笔记15

    DOM2动态创建节点 1.生成节点的方法 document.createElement("div") 2.插入节点的方法 父元素.appendChild(新节点) 在父节点的子节点 ...

  7. Nginx网站服务

    1.常见的网站服务 静态网站服务: Apache服务 nginx服务 动态网站服务: Tomcat服务 PHP 2.nginx网站服务特点 (1)nginx具有高并发(特别是静态资源).占用系统资源少 ...

  8. 4、mysql登录密码修改和找回

    操作适合5.1-5.5:当前的环境是5.5的环境: 4.1.mysql启动的原理: mysqld_safe -> my.cnf ->mysql.sock http://blog.51cto ...

  9. 15.3、mysql之InnoDB和MyISAM表空间详解

    15.3.1.InnoDB引擎表空间: 1.表空间分类: 共享表空间: 某一个数据库的所有的表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在 data目录下. 默认的文件名为:ibd ...

  10. scrapy入门到放弃02:整一张架构图,开发一个程序

    前言 Scrapy开门篇写了一些纯理论知识,这第二篇就要直奔主题了.先来讲讲Scrapy的架构,并从零开始开发一个Scrapy爬虫程序. 本篇文章主要阐述Scrapy架构,理清开发流程,掌握基本操作. ...