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 类能方便地操作数组,并且它提供的所有方法都是静态的 ...
随机推荐
- shevle模块
什么是shevle模块 该模块用于序列化python中的数据,但是序列化已经有pickle了为什么出现了shevle? 因为shevle更加简单,封装了文件的读写操作.load和dump操作, 只有一 ...
- AWS S3
Amazon Simple Storage Service (Amazon S3) Amazon S3 提供了一个简单 Web 服务接口,可用于随时在 Web 上的任何位置存储和检索任何数量的数据.此 ...
- element-ui table多选CheckBox参数解析
element-UI里的table表格与多选框CheckBox的组合很常用,官网也给了很多参数,自己总结了一下,方便日后使用 1.简易用法,没有附加的功能 要在表格里使用CheckBox很简单,只需设 ...
- 1、The Fctory Pattern(工厂模式:解决对象创建问题)
The Fctory Pattern 处理对象创建,客户端可以申请一个对象而不用知道对象被那个class创建.可以方便地解耦对象的使用和创建,有两种实现,工厂方法和抽象工厂. Method(工厂方法 ...
- es第一篇:Getting Started
es是一个近乎实时的搜索平台,这意味着从索引文档到文档可搜索,是有一点点延迟的(通常是一秒).es集群是一个或多个节点的集合,它们共同保存数据,并提供跨所有节点的联合索引和搜索功能.集群名由clust ...
- 08-oracle统计函数(单组分组函数)
--count时尽量count(列名),count(*)也可以. --count,max,min,sum,avg,median(中位数) select count(empno),count(disti ...
- 正则表达式控制Input输入内容 ,js正则验证方法大全
https://blog.csdn.net/xushichang/article/details/4041507 //输入姓名的正则校验 e.currentTarget.value = e.curre ...
- EntityManager对象管理
根据EntityManager对象的管理方式,可以有以下两种类型: — 容器托管的(container-managed)EntityManager对象 容器托管的EntityManager对象最简单, ...
- Mac新手问题
[现象:]MAC下checkout代码时,报svn:E170013-unable to connect to a repository at url xxx, svn:E1700113: unable ...
- 模拟登陆Github示例
首先进入github登录页:https://github.com/login 输入账号密码,打开开发者工具,在Network页勾选上Preserve Log(显示持续日志),点击登录,查看Sessio ...