1. 描述

Arrays工具类提供了针对数组(Array)的一些操作,比如排序、搜索、将数组(Array)转换列表(List)等等,都为静态(static)方法:

  1. binarySearch - 使用二进制搜索算法来搜索指定数组,以获得指定对象。在进行此调用之前,必须根据指定的比较器(通过上面的 Sort(Object[]、Comparator) 方法)对数组进行升序排序。
  2. deepToString - 返回指定嵌套(多维)数组的字符串表示形式。
  3. equals - 判断两个数组是否相等
  4. fill - 给数组赋值
  5. sort - 对数组进行排序,有多种实现。可以自定义比较器,可以自定义排序起止位置。
  6. toString - 返回指定数组内容的字符串表示形式。
  7. toList - 返回一个受指定数组支持的固定大小的列表。

数组(Array)与列表(List)可以互相转换,通过Arrays工具类的asList方法及List接口的toArray()方法。

2. 示范代码

package com.clzhang.sample.collections;

import java.util.*;

import org.junit.Test;

public class ArraysTest {

    @Test
public void testToString() {
final int ARRAY_SIZE = 10;
int[] array1 = new int[ARRAY_SIZE];
for (int i = 0; i < ARRAY_SIZE; i++)
array1[i] = i; // toString用法
System.out.println("Arrays.toString用法:" + Arrays.toString(array1)); final int DEEP_ARRAY_SIZE = 3;
int[][] array2 = new int[DEEP_ARRAY_SIZE][DEEP_ARRAY_SIZE];
for (int i = 0; i < DEEP_ARRAY_SIZE; i++)
for (int j = 0; j < DEEP_ARRAY_SIZE; j++)
array2[i][j] = i + j; // deepToString用法
System.out.println("Arrays.deepToString用法:" + Arrays.deepToString(array2));
} @Test
public void testOther() {
final int ARRAY_SIZE = 5;
int[] array = new int[ARRAY_SIZE]; // fill填充
Arrays.fill(array, 5);
System.out.println("fill后值:" + Arrays.toString(array)); // sort排序,先填充随机值,然后排序
Random random = new Random();
for (int i = 0; i < ARRAY_SIZE; i++)
array[i] = random.nextInt(ARRAY_SIZE * 10);
System.out.println("原始顺序:" + Arrays.toString(array));
Arrays.sort(array);
System.out.println("sort后顺序:" + Arrays.toString(array)); // binarySearch搜索,先设置一个值,然后找
array[3] = 37;
int pos = Arrays.binarySearch(array, 37);
System.out.println("查找到的位置:" + pos); // Arrays.asList方法调用
String[] strarray = new String[ARRAY_SIZE];
for (int i = 0; i < ARRAY_SIZE; i++)
strarray[i] = "str" + i;
System.out.println("Arrays.asList将Array转换为List后,对List遍历:");
List<String> list = Arrays.asList(strarray);
for (String str : list)
System.out.println(str); // List接口的toArray方法调用
System.out.println("List接口的toArray方法将List转换为Array后,对Array遍历:");
String[] secondStrArray = (String[]) list.toArray();
for (int i = 0; i < secondStrArray.length; i++)
System.out.println(secondStrArray[i]);
}
}

输出:
fill后值:[5, 5, 5, 5, 5]
原始顺序:[20, 45, 48, 14, 13]
sort后顺序:[13, 14, 20, 45, 48]
查找到的位置:3
Arrays.asList将Array转换为List后,对List遍历:
str0
str1
str2
str3
str4
List接口的toArray方法将List转换为Array后,对Array遍历:
str0
str1
str2
str3
str4
Arrays.toString用法:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Arrays.deepToString用法:[[0, 1, 2], [1, 2, 3], [2, 3, 4]]

Java:集合,Arrays工具类用法的更多相关文章

  1. Java 集合-Arrays工具类的介绍

    2017-10-31 18:39:46 Arrrays工具类:此类包含用来操作数组(比如排序和搜索)的各种方法. 常用方法: 主要是数组的一些常用方法如: asList:将数组转成集合 binaryS ...

  2. Java集合——Collections工具类

    Java集合——Collections工具类 摘要:本文主要学习了Collections工具类的常用方法. 概述 Collections工具类主要用来操作集合类,比如List和Set. 常用操作 排序 ...

  3. java集合框架——工具类

    一.概述 JAVA集合框架中有两个很重要的工具类,一个是Collections,另一个是Arrays.分别封装了对集合的操作方法和对数组的操作方法,这些操作方法使得程序员的开发更加高效. public ...

  4. java 集合Collections 工具类:排序,查找替换。Set、List、Map 的of方法创建不可变集合

    Collections 工具类 Java 提供1个操作 Set List Map 等集合的工具类 Collections ,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集合 ...

  5. java 13-2 Arrays工具类

    1.Arrays:针对数组进行操作的工具类.比如说排序和查找. 1:public static String toString(int[] a) 把数组转成字符串  2:public static v ...

  6. 在Java中Arrays工具类实现功能的六种方法

    使用Arrays工具类,要先导入包即:import.java.util.Arrays 以下是实现六种功能的方法: 1.比较两个数组值是否相等: 结果为true.false.(布尔型不能比较) int ...

  7. JAVA基础——Arrays工具类十大常用方法

    Arrays工具类十大常用方法 原文链接:http://blog.csdn.net/renfufei/article/details/16829457 0. 声明数组 String[] aArray ...

  8. java 基础 ----- Arrays 工具类

    -----  Arrays  工具类是一个比较方便的类 常用的方法 也可以通过jdk文档进行查看    右侧有偶 对一些比较常用的方法进行演示   直接放在main方法中进行测试 ----   equ ...

  9. Java集合----Collection工具类

    Collections 工具类 Collections 是一个操作 Set.List 和 Map 等集合的工具类 Collections 中提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了 ...

随机推荐

  1. RHEL/CentOS/Fedora各种源

    CentOS 默认自带 CentOS-Base.repo 源, 但官方源中去除了很多有版权争议的软件, 而且安装的软件也不是最新的稳定版. Fedora 自带的源中也找不到很多多媒体软件, 如果需要安 ...

  2. python 怎么模拟加header(如User-Agent、Content-Type等等)

    # -*- coding: cp936 -*- #python 27 #xiaodeng #python 怎么模拟加header(如User-Agent.Content-Type等等) #办法一: i ...

  3. fiddlescript 操作

    什么是 JScript .NET Fiddler Script 是用JScript.NET语言写的 http://docs.telerik.com/fiddler/KnowledgeBase/Fidd ...

  4. 转 configure: error: Cannot find ldap libraries in /usr/lib 解决办法

    今天在centos 6.2 64位版本上安装LNMP,config php的时候出现下面错误而退出 configure: error: Cannot find ldap libraries in /u ...

  5. RHEL7-openldap安装配置一(服务器端安装配置)

    LDAP的术语:entry:一个单独的单元,使用DN(distinguish name)区别attribute:entry的属性,比如,如果entry是组织机构的话,那么它的属性包括地址,电话,传真号 ...

  6. 主成分分析PCA

    PCA(Principal Component Analysis)不仅仅是对高维数据进行降维,更重要的是经过降维去除了噪声,发现了数据中的模式. PCA把原先的n个特征用数目更少的m个特征取代,新特征 ...

  7. Spring-security-Oauth2.0

    上周,我想开发OAuth 2.0的一个实例.我检查了Spring-security-Oauth2.0的样例,OAuth 2提供商sparklr2和OAuth 2客户端TONR .我探索在互联网上了一下 ...

  8. 【CAS单点登录视频教程】 第01集-- 认识CAS

    CAS 是什么? 目录 ----------------------------------------- [CAS单点登录视频教程] 第06集[完] -- Cas认证 学习 票据认证FormsAut ...

  9. IBatis.Net 视频教程 原创教程

    IBatis.Net 视频教程 列文件:共21个 Ibatis.Net 第01课 了解 和下载.avi Ibatis.Net 第02课 搭建简单三层项目 引入Ibatis.avi ibatis.net ...

  10. CocoaAsyncSocket UDP发送数据超过包大小限制(Message too long)

    最近在做iOS上,基于UDP传输音视频时遇到的一个问题,这边纪录一下: 由于考虑实时性比较高,所以采用了 CocoaAsyncSocket 的UDP框架来实现,将视频切割成一帧帧的图片发给服务端,不过 ...