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);这种复制会覆盖目 ...
随机推荐
- Linux添加永久静态路由
1.首先查看一下本机的路由 route -n 2.比如我们添加两条静态路由,访问192.168.142.100时通过192.168.142.10:访问192.168.142.200时通过192.168 ...
- 实现SLIC算法生成像素画
前言 像素风最早出现在8bit的电子游戏中,受制于电脑内存大小以及显示色彩单一, 只能使用少量像素来呈现内容,却成就了不少经典的像素游戏.随着内存容量与屏幕分辨率的提升,内存与显示媒介的限制不再是问题 ...
- 如何回答面试中问到的Hibernate和MyBatis的区别
这边主要是写给那些准备去面试的(没什么经验的)应聘者看的,为了在面试中更好的回答这个问题,我做一个简单的梳理和总结. 作为一名职场新人,经历过多次的面试,由于在简历中提及了Hibernate和MyBa ...
- base64的实现原理
base64是处理二进制数据的一种编码方式,可用于把二进制数据编码成64个可打印的字符. 学习base64之前,先了解一下什么是字节与编码 什么是字节 互联网中的数据都是用字节来表示的,一个字节有8位 ...
- 7、resync实时备份
sersync+rsync(增量,无差异备份),resync支持多线程,效果比inotify更好,配置思想和inotify很相似 7.1.在备份服务器上安装并配置rsync服务,实现nfs共享目录,可 ...
- CentOS7-磁盘扩容(LVM-非空目录拓展卷空间大小)
查看存储情况 $ df -kh 查看磁盘情况 $ fdisk -l 创建分区(注:可操作存储上限2TB) $ fdisk /dev/sdb 根据提示,依次输入"n","p ...
- webview和H5交互
由于H5的灵活多变,动态可配的特点,也为了避免冗长 的审核周期,H5页面在app上的重要性正日益突显. iOS应用于H5交互的控件主要是UIWebView及WKWebView WKWebView是14 ...
- C语言字符串处理库函数大全(转)
一.string.h中字符串处理函数 在头文件<string.h>中定义了两组字符串函数.第一组函数的名字以str开头:第二组函数的名字以mem开头. 只有函数memmove对重叠对象间的 ...
- mDNS知识
1.域名系统(Domain Name System,缩写:DNS)是互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS使用TCP和UDP端口53. ...
- JS中 var,let与const的区别
1.在ES6(ES2015)出现之前,JavaScript中声明变量就只有通过 var 关键字,函数声明是通过 function 关键字,而在ES6之后,声明的方式有 var . let . cons ...