zoukankan      html  css  js  c++  java
  • 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]] 

  • 相关阅读:
    (转)Linux系统调用和库函数调用的区别
    一个“梦想实践重度障碍者”的思考
    按字节输出数据
    内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理]
    VimdiffVIM的比较和合并工具
    [每天进步一点 流水账]回顾总结
    计算机就业方向
    ofstream和ifstream详细用法(转)
    ECMAScript 运算符关系运算符
    ECMAScript 语句标签语句
  • 原文地址:https://www.cnblogs.com/nayitian/p/3322526.html
Copyright © 2011-2022 走看看