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);这种复制会覆盖目 ...
随机推荐
- 测试开发之网络篇-IP地址
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异.这里介绍一下目前广泛使用的IPv4版本. IP地址使用一种统一的格式,为互联 ...
- 信息熵,交叉熵与KL散度
一.信息熵 若一个离散随机变量 \(X\) 的可能取值为 \(X = \{ x_{1}, x_{2},...,x_{n}\}\),且对应的概率为: \[p(x_{i}) = p(X=x_{i}) \] ...
- MaterialDesignInXamlToolkit“无法绑定到目标方法,因其签名或安全透明度与委托类型的签名或安全透明度不兼容”异常的解决思路
前言: 最初是想解答园友"小代码大世界 "的问题,后来想举一反三,将这个问题简单剖析下,做到知其所以然. MaterialDesignInXAML 控件库高度封装,有一些控件在使用 ...
- Centos7安装部署搭建gitlab平台、汉化
Centos7安装部署搭建gitlab平台.汉化 安装环境要求:内存不要小于4G,否则后期web界面可能会报错 一.准备工作 1.1 查看系统版本 首先查询系统版本,下载Gitlab的对应版本 [ro ...
- 动态路由协议与RIP配置
一.动态路由的概述 二.RIP路由协议工作原理 三.水平分割 四.RIP路由协议v1与v2的区别 五.实验配置 一.动态路由的概述 1.定义 动态路由是指利用路由器上运行的动态路由协议定期和其他路由器 ...
- js笔记15
DOM2动态创建节点 1.生成节点的方法 document.createElement("div") 2.插入节点的方法 父元素.appendChild(新节点) 在父节点的子节点 ...
- Nginx网站服务
1.常见的网站服务 静态网站服务: Apache服务 nginx服务 动态网站服务: Tomcat服务 PHP 2.nginx网站服务特点 (1)nginx具有高并发(特别是静态资源).占用系统资源少 ...
- 4、mysql登录密码修改和找回
操作适合5.1-5.5:当前的环境是5.5的环境: 4.1.mysql启动的原理: mysqld_safe -> my.cnf ->mysql.sock http://blog.51cto ...
- 15.3、mysql之InnoDB和MyISAM表空间详解
15.3.1.InnoDB引擎表空间: 1.表空间分类: 共享表空间: 某一个数据库的所有的表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在 data目录下. 默认的文件名为:ibd ...
- scrapy入门到放弃02:整一张架构图,开发一个程序
前言 Scrapy开门篇写了一些纯理论知识,这第二篇就要直奔主题了.先来讲讲Scrapy的架构,并从零开始开发一个Scrapy爬虫程序. 本篇文章主要阐述Scrapy架构,理清开发流程,掌握基本操作. ...