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 类能方便地操作数组,并且它提供的所有方法都是静态的 ...
随机推荐
- Vue.js路由跳转带参数到模板组件。
从SalesOrderQuery组件跳到SalesOrder组件,并且通过params属性携带数据. handleClick(row) { //alert(row.FSaleName);//获取该行F ...
- 持续集成、持续交付、持续部署、Jkens、git
一 持续集成.持续交付.持续部署 1. 持续集成 持续集成指的是,频繁地(一天多次)将代码集成到主干.持续集成的目的,就是让产品可以快速迭代,同时还能 保持高质量.它的核心措施是,代码集成到主干之前 ...
- Vue项目中使用HighChart
记:初次在Vue项目中使用 HighChart 的时候要走的坑 感谢这位哥们的思路 传送门 Vue-cli项目使用 npm install highcharts --save 让我们看看 highch ...
- 前端+php实现概率抽奖
转前端之后,后台工程师大大跑路了只能兼任他的位置写点东西了 前端+后台抽奖代码网上一大堆,引用一位仁兄前面的代码(比较懒抱歉,后面数据处理,奖项判断是否抽完我将会标红,因为前面的代码网上太多了都能找到 ...
- JavaScript 刷题一
最近读<JavaScirpt编程精解>,想把里面的三个大的程序实现,现在记录下来. 问题一: 从下面这封信中,emily奶奶每封信的结尾都会用同样的格式注明哪只猫出生了,哪只猫死去了.现要 ...
- elasticsearch安装及与springboot2.x整合
关于elasticsearch是什么.elasticsearch的原理及elasticsearch能干什么,就不多说了,主要记录下自己的一个使用过程. 1.安装 elasticsearch是用java ...
- selenium+Python(文件上传)
文件上传操作也比较常见功能之一,上传功能没有用到新有方法或函数,上传过程一般要打开一个本地窗口,从窗口选择本地文件添加.所以,一般会卡在如何操作本地窗口添加上传文件只要定位上传按钮,通send_key ...
- 《图解http协议》之HTTPs学习笔记
对于IP协议,并不陌生.TP协议是TCP/IP协议簇中的核心协议,也是TCP/IP的载体.所有的TCP,UDP,ICMP及IGMP数据都以IP数据报格式传输.IP提供不可靠的,无连接的数据传送服务.I ...
- poj 3750 小孩报数问题
小孩报数问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11527 Accepted: 5293 Descripti ...
- restful api理解
REST -- REpresentational State Transfer 直接翻译:表现层状态转移. 首先要明确一点:REST 实际上只是一种设计风格,它并不是标准. 0. REST不是&quo ...