jdk1.8 对数组及arrays类对数组的操作与增强
数组的初始化有两种方式
- 静态初始化: 初始化时由程序员显示置顶每个数组的初始值,由系统决定数组长度。如:
int[] a1 = new int[] {1,2,3,4};
- 动态初始化:初始化时由程序员只指定数组长度,由系统为数组元素分配初始值。如:
int[] a = new int[5];


写一个类测试一下
package chenlizhi;
import java.util.Arrays;
public class TestArrays {
public static void main(String[] args) {
int[] a1 = new int[] {4,3,2,1};
int[] a2 = new int[] {6,5,7,8};
//排序 升序
Arrays.sort(a1);
System.out.println("对a1数组进行排序结果为:" + Arrays.toString(a1));
//Arrays.binarySearch(a1, 4) 查找数组中值得下标 前提是必须排序不然不确定 如果有重复的返回第一个 如果没有这个值得话返回负数
System.out.println("查找a1数组当中4的值下标为:"+Arrays.binarySearch(a1, 4));
//Arrays.binarySearch(a1, 1, 4, 4) 查找数组中从1到4下标中有没有值为3的 如果有返回下标 如果没有返回负数 前提必须排序
System.out.println("查找a1数组从下标1开始到下标3结束,查看是否有为3的值" + Arrays.binarySearch(a1, 1, 3, 3));
//Arrays.copyOf(a1, 5) 复制数组 a1为被复制的数组 5为新数组的长度
int[] a3 = Arrays.copyOf(a1, 5);
System.out.println("a3数组的值为:" + Arrays.toString(a3));
//和上面一样 a1位被复制的数组 2为a1数组开始下标 3a1为数组结束下标
int[] a4 = Arrays.copyOfRange(a1, 2, 3);
System.out.println("a4数组值为:" + Arrays.toString(a4));
//查看两个数组的length和数组元素是否相同 如果都相同返回true 否则返回false
System.out.println("查看a1数组和a2数组是否相同 :" + Arrays.equals(a1, a2));
//把a1数组中的值全部换为 1
Arrays.fill(a1, 1);
System.out.println("输出a1数组的值为:" + Arrays.toString(a1));
//把a2数组中下标1到下标3的值换为1
Arrays.fill(a2, 1, 3, 1);
System.out.println("输出a2数组的值为:"+ Arrays.toString(a2));
}
}
输出结果为:
对a1数组进行排序结果为:[1, 2, 3, 4]
查找a1数组当中4的值下标为:3
查找a1数组从下标1开始到下标3结束,查看是否有为3的值2
a3数组的值为:[1, 2, 3, 4, 0]
a4数组值为:[3]
查看a1数组和a2数组是否相同 :false
输出a1数组的值为:[1, 1, 1, 1]
输出a2数组的值为:[6, 1, 1, 8]
还有cpu并行来提供性能 基于jdk 1.8
package platform.county.jiange.web.security; import java.util.Arrays;
import java.util.function.IntBinaryOperator;
import java.util.function.IntUnaryOperator;
/**
* jdk8增强arrays类 cpu并行
* @author Administrator
*
*/
public class ArraysTest {
public static void main(String[] args) {
//cpu并行排序
int [] a = new int [] {98 , 78 , 67 , 564 , 49 , 34};
Arrays.parallelSort(a);
System.out.println(Arrays.toString(a)); //指定数组新的计算结果
int [] a1 = new int [] {98 , 78 , 67 , 564 , 49 , 34};
Arrays.parallelPrefix(a1, new IntBinaryOperator() { @Override
public int applyAsInt(int left, int right) {
//left 代表前一个索引 right代表现在的索引
//类似 98 * 78 , 78 * 67 然后把值重新赋值给数组
return left * right;
}
});
System.out.println(Arrays.toString(a1)); //给a3数组赋值 使用表达式
int [] a3 = new int [10] ;
Arrays.parallelSetAll(a3, new IntUnaryOperator() { @Override
public int applyAsInt(int operand) {
//operand 代表现在正在计算的索引 索引位置 * 5
return operand * 5;
}
});
System.out.println(Arrays.toString(a3));
}
}
输出
[34, 49, 67, 78, 98, 564]
[98, 7644, 512148, 288851472, 1268820240, 190215200]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45]
jdk1.8 对数组及arrays类对数组的操作与增强的更多相关文章
- Java数组声明创建和使用以及多维数组、Arrays类、稀疏数组
目录 数组概述 数组声明创建 内存分析 java内存分析 堆 栈 方法区 三种初始化 静态初始化 动态初始化 数组的默认初始化 数组的四个基本特点 数组边界 小结: 数组使用 数组基础使用 For E ...
- Java数组和Arrays 类
1.创建数组的三种方式: ①动态初始化:数组的初始化和数组元素的赋值操作分开进行 dataType[ ] arrayRefVar = new dataType [ arraySize ] ; Emp ...
- Java从零开始学十(Arrays类对数组的常用方法)
一.Arrays类常用方法 二.简单例子 package com.pb.demo1; import java.util.Arrays; /* * Arrays工具类的中的几个常用方法 * 1.copy ...
- Java数组05——Arrays类
Arrays类讲解 package array; import java.util.Arrays; public class ArrayDemon07 { public static ...
- java数组中Arrays类
使用Arrays类之后要先导入包,即在开头添加这行: import.java.util.Arrays 1,排序:Arrays.sort(数组名) 排序后为数组升序. 2,将数组转换成字符串:Array ...
- 慕课网-Java入门第一季-6-7 使用 Arrays 类操作 Java 中的数组
来源:http://www.imooc.com/code/1556 Arrays 类是 Java 中提供的一个工具类,在 java.util 包中.该类中包含了一些方法用来直接操作数组,比如可直接实现 ...
- 数组 Arrays类
1.数组是一组变量集合,用来存储相同数据类型的一组数据的连续的空间. *数组名(标识符)连续空间首地址. *元素下标标明元素在数组中的位置,从0开始. *每个元素都可以通过下标来访问. *数组长度固定 ...
- [java初探05]__数组的简单认识及Arrays类的常用方法
数组是具有相同数据类型的一组数据的集合.在程序设计中,这样的集合称之为数组.数组的每个元素都具有相同的数据类型,在Java中数组也被看为一个对象. 在里,了解了数组的定义之后, 我们知道了,数组并不是 ...
- Java中数组操作 java.util.Arrays 类常用方法的使用
任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的 ...
随机推荐
- 批处理 进行svn代码拉取,vs编译,dotfuscator混淆
Dotfuscator的使用:https://www.cnblogs.com/aitong/p/10684004.html 从拉取代码,编译到最后的混淆步骤很多.这时就可以使用批处理来进行自动化. 用 ...
- Dijkstra实现最短路径
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; const ...
- Java - 冒泡排序的优化算法(尚学堂第七章数组)
import java.util.Arrays; public class TestBubbleSort2 { public static void main(String[] args) { int ...
- 04-oracle时间函数
add_months(sysdate,x)x月之后的日期:last_day(sysdate)指定日期所在月份的最后一天:next_day(sysdate,'星期x')当前日期后的下一个星期x: mon ...
- unity 读取外部exe程序控制台信息
由于需要获取显卡信息,但是unity的自带函数,只能输出1个显卡 c#倒是可以但是引用了一个下载的dll System.Management.dll 这个dll放到unity用不了,因为mono不 ...
- Ubuntu下伪分布式模式Hadoop的安装及配置
1.Hadoop运行模式Hadoop有三种运行模式,分别如下:单机(非分布式)模式伪分布式(用不同进程模仿分布式运行中的各类节点)模式完全分布式模式注:前两种可以在单机运行,最后一种用于真实的集群环境 ...
- Scrapy框架学习(四)爬取360摄影美图
我们要爬取的网站为http://image.so.com/z?ch=photography,打开开发者工具,页面往下拉,观察到出现了如图所示Ajax请求, 其中list就是图片的详细信息,接着观察到每 ...
- Centos 从零开始 (四)
12:nginx架设 rtmp直播 首先在之前 所安装的nginx是用 yum 源安装的.却不能为nginx添加他的模块 所以要用wget来下载源文件 来进行源码配置与安装.开搞 [root@loca ...
- 出现多个sessid
这种情况我也出现了,很郁闷.这是每次请求页面,都生成一个存PHPSESSID的cookie,cookie路径的问题,可以发现你这几个PHPSESSID的Path都不一样.我修改Thinkphp的配置文 ...
- Quartz.Net定时任务简单实用(实例)
一.Quartz.Net是什么? Quartz.Net是一个定时任务框架 二.有Timer了,为什么需要用Quartz.Net? Quartz.Net比Timer使用起来更灵活.例如:每个月最后一个星 ...