工具类1--Arrays类 总结以及集合与数组的相互转换

package com.javabase.javabase.arrays;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * @Author ShawnYang
 * @Date 2019-10-31 11:31
 * @Description TODO
 * 修改人:
 * 修改时间:
 * 修改备注:
 */
public class ArraysTest {
    private int[] arr1 = new int[]{1, 3, 2, 4};
    private int[] arr2 = new int[]{1, 3, 2, 4};
    private int[] arr3 = new int[]{1, 3, 2, 4};
    private Integer[] arr4 = new Integer[]{1, 3, 2, 4};


    @Test
    public void test() {
        //1.boolean equals(int[] a,int[] b):判断两个数组是否相等,类似于equals 比较的是内容
        boolean equals = Arrays.equals(arr1, arr2);
        System.out.println("1 equalsTest       " + equals);

        //2.String toString(int[] a):输出数组信息字符串(并不是输出数组元素字符串)并且比较和arr1.toString()的区别,数组并没有重写toString方法。
        System.out.println("2.1 toStringTest   " + arr1);
        System.out.println("2.2 toStringTest   " + arr1.toString());
        String s = Arrays.toString(arr1);
        System.out.println("2.3 toStringTest   " + s);

        //3.void fill(int[] a,int val):将指定值填充到数组之中。所有元素都被填充,不是追加
        Arrays.fill(arr1, 5);
        System.out.println("3 fillTest   " + Arrays.toString(arr1));

        //4.void sort(int[] a):对数组进行排序。
        Arrays.sort(arr2);
        System.out.println("4 fillTest   " + Arrays.toString(arr2));

        //5.int binarySearch(int[] a,int key)
        int index = Arrays.binarySearch(arr2, 3);
        if (index >= 0) {
            System.out.println("5 fillTest   " + index);
        } else {
            System.out.println("5 fillTest   " + "not found");
        }

        //6. Arrays.asList 把数组装换为list,aslist 的入参是可变形参,List<T> asList(T... a),注意下面两者的区别
        // 6.1当如下输入基本数据类型的集合时,aslist 把输入的数组当做1个元素的可变个数入参,所以会生成只有一个数组元素的List
        List<int[]> ints = Arrays.asList(arr3);
        System.out.println("6.1 Arrays.asListTest   " + ints);
        // 6.2当如下输入引用数据类型的集合时,aslist 把输入的数组中的每个元素都当成一个可变元素的入参,数组中所有元素组成的List
        List<Integer> integers = Arrays.asList(arr4);
        System.out.println("6.2 Arrays.asListTest   " + integers);

        //7.集合和数组,以及数组和集合之间的装换
        //7.1 数组装换为集合
        // 方法一、数组遍历后放入进新建的集合中
        ArrayList<Integer> integerList = new ArrayList<>();
        for (int i : arr3) {
            integerList.add(i);
        }
        System.out.println("7.1.1   " + integerList);

        // 方法二、Arrays.asList 方法 如上(略)

        // 方法三、Collections.addAll 方法(只能是arr4 不能是arr3 这个入参是可变形参,和6中的原因一样)
        ArrayList<Integer> integerList2 = new ArrayList<>();
        Collections.addAll(integerList2,arr4);
        System.out.println("7.1.2   " + integerList2);

        //7.2 集合装换为数组(注意转换时的自动拆箱
        // 方法一、循环遍历
        int[] ints1 = new int[integerList.size()];
        integerList.forEach(i -> ints1[integerList.indexOf(i)]=i);
        System.out.println("7.2.1   " + Arrays.toString(ints1));
        // 方法二、toArray 方法
//      Object[] objects = integerList.toArray();
        Integer[] ts = integerList.toArray(new Integer[integerList.size()]);
        System.out.println("7.2.2   " +Arrays.toString(ts));
    }
}

1 equalsTest       true
2.1 toStringTest   [I@e2d56bf
2.2 toStringTest   [I@e2d56bf
2.3 toStringTest   [1, 3, 2, 4]
3 fillTest   [5, 5, 5, 5]
4 fillTest   [1, 2, 3, 4]
5 fillTest   2
6.1 Arrays.asListTest   [[I@244038d0]
6.2 Arrays.asListTest   [1, 3, 2, 4]
7.1.1   [1, 3, 2, 4]
7.1.2   [1, 3, 2, 4]
7.2.1   [1, 3, 2, 4]
7.2.2   [1, 3, 2, 4]

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值