Java 数组 常用方法

2021-03-09  本文已影响0人  西贝巴巴
package com.company;

import java.util.*;
/*
数组排序及元素查找
数组添加元素
获取数组长度
数组反转
数组输出
数组获取最大和最小值
数组合并
数组填充
数组扩容
查找数组中的重复元素
删除数组元素
数组差集
数组交集
在数组中查找指定元素
判断数组是否相等
数组并集

 */

import java.util.Arrays;

public class ArrayTest {

    public static void main(String[] args) {
        //数组排序及元素查找
        int[] array1 = {1, 8, 5, 2, 4, 6, -1, 4, -3};
        System.out.println("array1:" + Arrays.toString(array1));
        Arrays.sort(array1);
        System.out.println("array1 sort:" + Arrays.toString(array1));
        //元素查找
        int index = Arrays.binarySearch(array1, 22);
        System.out.println("元素 2  在第 " + index + " 个位置");

        //数组添加元素
        int newIndex = -index - 1;
        array1 = insertElement(array1, 7, newIndex);
        System.out.println("添加新元素:" + Arrays.toString(array1));

        //数组反转
        ArrayList<String> array2 = new ArrayList<String>();
        array2.add("A");
        array2.add("B");
        array2.add("C");
        array2.add("D");
        System.out.println("反转之前:" + array2);
        Collections.reverse(array2);
        System.out.println("反转之后:" + array2);

        //最大值和最小值
        Integer[] numbers = {3, 51, 345, 3, 4, 2, 1};
        int min = Collections.min(Arrays.asList(numbers));
        int max = Collections.max(Arrays.asList(numbers));
        System.out.println("min:" + min + " max:" + max);

        //数组合并
        String a[] = {"A", "E", "I"};
        String b[] = {"O", "U"};
        List list = new ArrayList(Arrays.asList(a));
        list.addAll(Arrays.asList(b));
        Object[] c = list.toArray();
        System.out.println(Arrays.toString(c));

        //数组填充
        int[] array3 = new int[6];
        Arrays.fill(array3, 100);
        System.out.println("array3:" + Arrays.toString(array3));
        Arrays.fill(array3, 3, 6, 50);
        System.out.println("array3:" + Arrays.toString(array3));

        //数组扩容
        String[] names = new String[]{"A", "B", "C"};
        String[] extended = new String[5];
        extended[2] = "D";
        extended[4] = "E";
        System.arraycopy(names, 0, extended, 0, names.length);
        System.out.println("names:" + Arrays.toString(extended));

        //数组差集
        ArrayList objArray = new ArrayList();
        ArrayList objArray2 = new ArrayList();
        objArray2.add(0, "common1");
        objArray2.add(1, "common2");
        objArray2.add(2, "notcommon");
        objArray2.add(3, "notcommon1");
        objArray.add(0, "common1");
        objArray.add(1, "common2");
        objArray.add(2, "notcommon2");
        System.out.println("array1 的元素" + objArray);
        System.out.println("array2 的元素" + objArray2);
        objArray.removeAll(objArray2);
        System.out.println("array1 与 array2 数组差集为:" + objArray);

        //数组交集
        objArray.retainAll(objArray2);
        System.out.println("array2 & array1 数组交集为:" + objArray);

        //判断是否含有指定元素
        boolean bb = objArray.contains("common1");
        System.out.println(bb);

        //判断数组是否相等
        boolean bbb = Arrays.equals(a, b);
        System.out.println(bbb);

    }

    private static int[] insertElement(int original[], int element, int index) {
        int length = original.length;
        int[] destination = new int[length + 1];
        System.arraycopy(original, 0, destination, 0, index);
        destination[index] = element;
        System.arraycopy(original, index, destination, index + 1, length - index);
        return destination;
    }

}
上一篇 下一篇

猜你喜欢

热点阅读