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 ...
- C++下遍历文件夹
编写程序遍历文件夹及其子文件夹下所有文件,并输出到标准输出流或者文件流. 1. 先考虑在单层目录下,遍历所有文件.以C:\WINDOWS为例: 用到数据结构_finddata_t,文件信息结构体的指针 ...
- vue中nextTick的使用(转载)
转载自:https://www.cnblogs.com/chaoyuehedy/p/8985425.html 简介 vue是非常流行的框架,他结合了angular和react的优点,从而形成了一个轻量 ...
- python3.6 for pygame安装
首先下载好文件: pygame下载网址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame 找到pygame-1.9.2b8-cp36-cp36m-wi ...
- 溶解shader
玩神界原罪2,感觉人物被建筑遮挡时,建筑的“溶解”效果很有意思,想实现一下.然后发现连溶解都没实现过,emmmmm....先来把溶解实现了~ 原理就是根据一张噪声图的值是否大于某个阈值,来判断是否丢弃 ...
- redux-thunk, redux-logger 阮一峰 ( react中间件 )
http://www.ruanyifeng.com/blog/2016/09/redux_tutorial_part_two_async_operations.html Redux 入门教程(二):中 ...
- IE11在使用get方式提交没有进行请求的bug问题
在做iemsc项目的时候,测试提交了一个bug问题,在发布新闻成功后,自动刷新列表的时候,不进行刷新,但是在谷歌上面又不会出现这种问题, 原因: 发现请求的时候用的get请求,因为不同的浏览器的请求机 ...
- ruby中的\z与\Z区别
s = "this is\nthe name\n" puts "--------------" puts s.match(/name\Z/) puts s.ma ...
- 虚拟机下linux 的root密码忘记怎么修改(转)
1.开机时任意按一个方向键,进入界面,选择linux系统,按e键进入 2.然后用上下键选择kerner(内核)那一行,按e键进入编辑界面,编辑界面最后一行显示如下:(grub edit> ker ...
- 使用NDK编译含JNI的Android项目常见问题解决方案
有时候,自己下载的或者拷贝过来的JNI项目出现莫名错误,通常是找不到头文件,可能解决方案如下: Removing the C nature: The only way I could find to ...