java 中java.util.Arrays类---常用函数记录
java.util.Arrays主要是用来对数组进行操作的类,主要包括以下方法:
1.数组转化列表,得到固定大小的列表,Arrays.asList(...);
public static <T> List<T> asList(T... a)
- 返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直接写”到数组。)此方法同
Collection.toArray()一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了RandomAccess。此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素:
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
2.数组中查找元素(二分法查找),必须确保数组用sort()排过序,Arrays.binarySearch(byte[] a, int fromIndex, int toIndex, byte key) ;
(1)public static int binarySearch(byte[] a,byte key)
- 使用二分搜索法来搜索指定的 byte 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过
sort(byte[])方法)。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。
(2)public static int binarySearch(byte[] a,int fromIndex,int toIndex, byte key)
- 使用二分搜索法来搜索指定的 byte 型数组的范围,以获得指定的值。必须在进行此调用之前对范围进行排序(通过
sort(byte[], int, int)方法)。如果没有对范围进行排序,则结果是不确定的。如果范围包含多个带有指定值的元素,则无法保证找到的是哪一个。
3.计算数组的哈希码,Arrays.hashCode(...);
4.复制数组内容,Arrays.copyOf(boolean[] original, int newLength)
public static int[] copyOf(int[] original,int newLength)
- 复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。对于在原数组和副本中都有效的所有索引,这两个数组将包含相同的值。对于在副本中有效而在原数组无效的所有索引,副本将包含 0。当且仅当指定长度大于原数组的长度时,这些索引存在。
5.自定义要复制的数组内容,Arrays.copyOfRange(boolean[] original, int from, int to)
public static <T> T[] copyOfRange(T[] original,int from,int to)
- 将指定数组的指定范围复制到一个新数组。该范围的初始索引 ( from) 必须位于 0 和 original.length(包括)之间。 original[from] 处的值放入副本的初始元素中(除非 from == original.length 或 from == to)。原数组中后续元素的值放入副本的后续元素。该范围的最后索引 ( to)(必须大于等于 from)可以大于 original.length,在这种情况下, null 被放入索引大于等于 original.length - from 的副本的所有元素中。返回数组的长度为 to - from。
所得数组与原数组属于完全相同的类。
6.两个数组内容比较,Arrays.equals(boolean[] a, boolean[] a2)
public static boolean equals(boolean[] a, boolean[] a2)
- 如果两个指定的 boolean 型数组彼此 相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。此外,如果两个数组引用都为 null,则认为它们是相等的。
7.向数组中填值,Arrays.fill(boolean[] a, boolean val)
(1)public static void fill(byte[] a, byte val)
- 将指定的 byte 值分配给指定 byte 节型数组的每个元素。
(2)public static void fill(byte[] a,int fromIndex,int toIndex,byte val)
- 将指定的 byte 值分配给指定 byte 型数组指定范围中的每个元素。填充的范围从索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果 fromIndex==toIndex,则填充范围为空。)
8.数组排序Arrays.sort()
(1)public static void sort(byte[] a)
对指定的 byte 型数组按数字升序进行排序。
(2)public static void sort(byte[] a,int fromIndex,int toIndex)
对指定 byte 型数组的指定范围按数字升序进行排序。排序的范围从索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果fromIndex==toIndex,则排序范围为空。)
9.数组转为字符串toString(byte[] a)
public static String toString(float[] a)
返回指定数组内容的字符串表示形式。字符串表示形式由数组的元素列表组成,括在方括号( "[]")中。相邻元素用字符 ", "(逗号加空格)分隔。这些元素通过 String.valueOf(byte) 转换为字符串。如果 a 为 null,则返回 "null"。
如:
import java.util.Arrays;
public class test5 {
public static void main(String[] args) {
int[] num = {1,-2,3,10,-4,7,2,-5};
System.out.println(Arrays.toString(num));
System.out.println(Arrays.toString(num).split(",").length);
for (String s : Arrays.toString(num).split(",")){
System.out.println(s);
}
}
}
输出为:
[1, -2, 3, 10, -4, 7, 2, -5]
8
[1
-2
3
10
-4
7
2
-5]
java 中java.util.Arrays类---常用函数记录的更多相关文章
- Java中数组操作 java.util.Arrays 类常用方法的使用
任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的 ...
- [19/03/12-星期二] 数组_遍历(for-each)&复制&java.util.Arrays类
一.遍历 for-each即增强for循环,是JDK1.5新增加的功能,专门用于读取数组或集合中所有的元素,即对数组进行遍历. //数组遍历 for-each public class Test_03 ...
- JDK1.8源码(四)——java.util.Arrays 类
java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用. 1.asList public static ...
- java.util.Arrays类详解(源码总结)
概述 Arrays类位于java.util包下,是一个对数组操作的工具类.今天详细的看了看Arrays类的4千多行源码,现将Arrays类中的方法做一个总结(JDK版本:1.6.0_34).Array ...
- java.util.Arrays类
前言:java.util.Arrays类的技术文档请查看Oracle官网 1.Arrays类常见方法: 本文参考资料:百度文库:Oracle官网:第三方中文技术文档
- Java中Date和Calender类的使用方法
查看文章 Java中Date和Calender类的使用方法 2009-10-04 20:49 Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着 ...
- Java基础-Java中23种设计模式之常用的设计模式
Java基础-Java中23种设计模式之常用的设计模式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.设计模式分类 设计模式是针对特定场景给出的专家级的解决方案.总的来说设 ...
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- Java 中的并发工具类
Java 中的并发工具类 CountDownLatch public class JoinCountDownLatchTest { public static void main(String[] a ...
随机推荐
- StringBuffer类和String类(原文地址 : http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.html)
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存 ...
- Leetcode:LRU Cache,LFU Cache
在Leetcode上遇到了两个有趣的题目,分别是利用LRU和LFU算法实现两个缓存.缓存支持和字典一样的get和put操作,且要求两个操作的时间复杂度均为O(1). 首先说一下如何在O(1)时间复杂度 ...
- CentOS 下搭建Gitlab
centos7安装部署gitlab服务器 我这里使用的是centos 7 64bit,我试过centos 6也是可以的! 1. 安装依赖软件 yum -y install policycoreut ...
- springmvc整合mybatis 配置文件
使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合 ...
- Cisco ASR1002-X告警处理
客户反馈其机房的ASR100X告警,拍照如下图: 处理步骤: 查看日志未发现异常 查看CPU/内存/风扇未发现异常 3.清除告警#clear facility alarm依旧告警 4.shutdown ...
- [剑指offer]51-数组中的逆序对(归并排序)
题目链接 https://www.nowcoder.com/questionTerminal/96bd6684e04a44eb80e6a68efc0ec6c5 题意 在数组中的两个数字,如果前面一个数 ...
- 使用go语言的list实现一个简单的LRU缓存
package main; import ( "container/list" "errors" "sync" "fmt" ...
- C# Request.RawUrl与Request.Url的区别
RawUrl——不包含域名及端口的地址 Url——包含域名,最全
- MYSLQ数据库 day 1
啥是SQL? 据库的组成部分,其中数据库管理系统可以接收一些命令,对数据文件进行添加.删除.修改.查询等操作.那么这些命令就是 SQL . SQL:(Structured Query Language ...
- C#设计模式-2工厂方法模式(Factory Method)
什么是工厂模式?类比生活中的概念,当我们需要打电话的时候,我们需要一部手机,我们通常会选择直接去卖手机的实体店买.但在程序设计中,当我们需要调用一个类(PhoneA或PhoneB)的方法的时候,我们往 ...