Java:集合,Arrays工具类用法

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]] 

posted @ 2013-09-15 14:30  那些年的事儿  阅读(2293)  评论(0编辑  收藏  举报