数组的初始化有两种方式

  • 静态初始化: 初始化时由程序员显示置顶每个数组的初始值,由系统决定数组长度。如:
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类对数组的操作与增强的更多相关文章

  1. Java数组声明创建和使用以及多维数组、Arrays类、稀疏数组

    目录 数组概述 数组声明创建 内存分析 java内存分析 堆 栈 方法区 三种初始化 静态初始化 动态初始化 数组的默认初始化 数组的四个基本特点 数组边界 小结: 数组使用 数组基础使用 For E ...

  2. Java数组和Arrays 类

    1.创建数组的三种方式: ①动态初始化:数组的初始化和数组元素的赋值操作分开进行 dataType[ ] arrayRefVar = new dataType [ arraySize ] ; Emp ...

  3. Java从零开始学十(Arrays类对数组的常用方法)

    一.Arrays类常用方法 二.简单例子 package com.pb.demo1; import java.util.Arrays; /* * Arrays工具类的中的几个常用方法 * 1.copy ...

  4. Java数组05——Arrays类

    Arrays类讲解  package array; ​ import java.util.Arrays; ​ public class ArrayDemon07 {     public static ...

  5. java数组中Arrays类

    使用Arrays类之后要先导入包,即在开头添加这行: import.java.util.Arrays 1,排序:Arrays.sort(数组名) 排序后为数组升序. 2,将数组转换成字符串:Array ...

  6. 慕课网-Java入门第一季-6-7 使用 Arrays 类操作 Java 中的数组

    来源:http://www.imooc.com/code/1556 Arrays 类是 Java 中提供的一个工具类,在 java.util 包中.该类中包含了一些方法用来直接操作数组,比如可直接实现 ...

  7. 数组 Arrays类

    1.数组是一组变量集合,用来存储相同数据类型的一组数据的连续的空间. *数组名(标识符)连续空间首地址. *元素下标标明元素在数组中的位置,从0开始. *每个元素都可以通过下标来访问. *数组长度固定 ...

  8. [java初探05]__数组的简单认识及Arrays类的常用方法

    数组是具有相同数据类型的一组数据的集合.在程序设计中,这样的集合称之为数组.数组的每个元素都具有相同的数据类型,在Java中数组也被看为一个对象. 在里,了解了数组的定义之后, 我们知道了,数组并不是 ...

  9. Java中数组操作 java.util.Arrays 类常用方法的使用

    任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的 ...

随机推荐

  1. CentOS7 firewalld打开关闭防火墙 开放端口

    firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status fir ...

  2. chromedriver for mac

  3. 错误及异常处理-[PathTooLongException]指定的路径或文件名太长

    错误信息 System.IO.PathTooLongException:"指定的路径或文件名太长,或者两者都太长.完全限定文件名必须少于 260 个字符,并且目录名必须少于 248 个字符. ...

  4. Partition Array by Odd and Even

    Partition an integers array into odd number first and even number second. Example Given [, , , ], , ...

  5. java多线程-阻塞队列BlockingQueue

    大纲 BlockingQueue接口 ArrayBlockingQueue 一.BlockingQueue接口 public interface BlockingQueue<E> exte ...

  6. (转)Linux企业运维人员常用的150个命令分享

    Linux企业运维人员常用的150个命令分享 原文:http://www.jb51.net/article/127014.htm 本文将向大家介绍Linux企业运维人员常用的150个命令,如有不足之处 ...

  7. JDBC(4)-Result结果集

    1.Result结果集的引入 当我们查询数据库时,返回的是一个二维的结果集,我们这时候需要使用ResultSet来遍历结果集,获取每一行的数据. 2.使用Result遍历查询结果 boolean ne ...

  8. C 标准库 - string.h之strcpy使用

    strcpy Copies the C string pointed by source into the array pointed by destination, including the te ...

  9. 批量修改dos文件到unix

    1. 安装dos2unix 2. 执行:find ./ -type f | xargs dos2unix

  10. css3毛玻璃效果白边问题

    注:css3毛玻璃效果应该很多人都知道怎么实现,但是有个问题是图片模糊了之后相当于缩小了,所以颜色深的图片会出现白边,这里说下我参考网上的解决方式吧! 1.毛玻璃实现方法: CSS3 blur滤镜实现 ...