Skip to content

Latest commit

 

History

History
149 lines (124 loc) · 4.67 KB

File metadata and controls

149 lines (124 loc) · 4.67 KB

Array

https://www.cnblogs.com/epeter/p/5664926.html

  • 声明数组
  • 查看数组长度
  • 遍历数组
  • int数组转成string数组
  • 从array中创建arraylist
  • 数组中是否包含某一个值
  • 将数组转成set集合
  • 将数组转成list集合
  • Arrays.fill()填充数组
  • 数组排序
  • 复制数组
  • 比较两个数组
  • 去重复
  • 查询数组中的最大值和最小值
  • 数组作为参数
  • 数组作为返回值
  • 二维数组
package com.Lrd;
import com.sun.javafx.binding.StringFormatter;
import java.io.OutputStream;
import java.sql.SQLOutput;
import java.util.*;

public class ArrayTest {
    public static void main(String[] args) {
        //1. 两种声明方式
        int[] test1 = new int[5];
        int[] test2 = {2, 1, 3, 4, 5};
        String[] teststr = {"1", "2", "3"};

        //2. 查看数组长度
        System.out.println("Array length = " + test1.length);

        //3. 遍历数组
        for (int i : test2) {
            System.out.println("Array element = " + i);
        }

        //4. int数组转成String数组
        String[] test3 = new String[test2.length];
        int i;
        for (i = 0; i < test2.length; i++) {
            test3[i] = Integer.toString(test2[i]);
        }
        System.out.println("int to String = " + test3.toString());

        //5.  从array中创建arraylist(String)
        ArrayList<String> list = new ArrayList<String>();
        Collections.addAll(list, teststr);
        System.out.println("array to list = " + list.toString());


        //6. 从array中穿件ArrayList(int)
        //java集合框架数据结构中元素不能为基础类型(int,char)需要转一下。
        //使用common-lang3可以快速转化, 详见 https://blog.csdn.net/makanglei1994/article/details/82881679
        ArrayList list2 = new ArrayList();
        Integer[] IntArray = new Integer[test1.length];
        for (i = 0; i < test1.length; i++) {
            IntArray[i] = test1[i];
        }
        System.out.println("array to list = " + Arrays.toString(IntArray));

        //6. 测试数组溢出
        /*
        System.out.println("test1's length = " + test1.length);
        try {
            System.out.println("try to access test[" + test1.length + "]...");
            System.out.println(test1[test1.length]);
        } catch (Exception e) {
            System.out.println(e.toString());
            e.printStackTrace();
        }
        */

        //7.1  数组中是否包含某个值,使用sort+binarySearch
        Arrays.sort(test2);
        System.out.println("test2 after sort" + Arrays.toString(test2));
        int pos = Arrays.binarySearch(test2, 2);
        if (-1 == pos) {
            System.out.println("Not find");
        } else {
            System.out.println("Find, pos:" + pos);
        }

        //7.2 数组中是否包含某个值,借助于list结构
        System.out.println("array to list = " + array2List(test2).toString());
        System.out.println("Find status = " + array2List(test2).contains(2));

        //8. 数组转化为set集合
        HashSet set = new HashSet(array2List(test2));
        System.out.println("Hashset = " + set.toString());


        //9. Array的填充
        Arrays.fill(test2, 1);
        System.out.println("Array fill 1" + Arrays.toString(test2));

        //10. 数组的排序
        for (int j = 0; j < test2.length; j++) {
            test2[j] = 10 - j;
        }
        System.out.println("Sort test2 before = " + Arrays.toString(test2));
        Arrays.sort(test2);
        System.out.println("Sort test2 after = " + Arrays.toString(test2));

        //11.复制数组
        int[] test22 = Arrays.copyOf(test2, test2.length);
        System.out.println("Copy test22 = " + Arrays.toString(test2));

        //12. 比较两个数组
        System.out.println("Compare test2 and test22 = " + Arrays.equals(test2, test22));
        test22[1] = 100;
        System.out.println("Compare test2 and test22 = " + Arrays.equals(test2, test22));

        //13. 去重复
        test22[2] = 100;
        set.clear();
        System.out.println("Remove same before = " + set.toString());
        for (int element : test22){
            set.add(element);
        }
        System.out.println("Remove same after = " + set.toString());

        //14.查询数组中最大值和最小值
        int max = test22[0];
        for (int element : test22){
            max = Integer.max(element, max);
        }
        System.out.println("max = " + max);
    }
    private static List array2List(int[] array){

        Integer[] IntArray = new Integer[array.length];

        for (int i = 0; i < array.length; i++) {
            IntArray[i] = array[i];
        }

        return Arrays.asList(IntArray);
    }

}