开发者

Java中Arrays类和Collections类常用方法示例详解

目录
  • Arrays.fill()相关用法
  • Arrays.toString()
  • Arrays.sort()
  • Arrays.equals() 
  • Arrays.binarySearch() ​​​​
  • Arrays.copyOf()和Arrays.copyOfRange()
  • Arrays.asList()
  • Collections.addAll()
  • Collections.sort()
  • Collections.binarySearch()
  • Collections.shuffle()
  • Collections.reverse()    ​​​​​​​
  • Collections.min() & Collections.max()
  • Collections.fill()
  • Collections.swap()
  • Collections.copy()
  • Collections.replaceAll()

Arrays.fill()相关用法

    int arr[] = new int[5];
        //所有元素赋值为5
        Arrays.fill(arr,5);
        //从索引[1,3)赋值为1
        Arrays.fill(arr,1,3,1);
        //从索引[2,4)赋值为2
        Arrays.fill(arr,2,4,2);

Arrays.toString()

//将数组编程客栈元素放入字符串中,可以方便快速打印数组元素
//底层实现
        //使用StringBuilder拼接字符串
        StringBuilder b = new StringBuilder();
        //在开头加[
        b.append('[');
        //遍历数组拼接元素
        for (int i = 0; ; i++) {
            b.append(String.valueOf(a[i]));
            if (i == iMax)
                //末尾拼接]并转为String类型
                return b.append(']').toString();
            b.append(", ");
        }

Arrays.sort()

//排序,默认为升序排序
        //[3, 3, 5, 2, 2]
        Arrays.sort(arr2);
        //打印结果:[2, 2, 3, 3, 5]
        System.out.println(Arrays.toString(arr2));
        //倒序排序,Collections.reverseorder()返回一个比较器
        Arrays.sort(arr2, Collections.reverseOrder());

Arrays.equals() 

      //比较两个数组中元素是否相等
        //相同:true,不同:false
        System.out.println(Arrays.equals(arr1,arr2));

Arrays.binarySearch() ​​​​

       //二分查找元素是否存在数组
        int arr4[] = {1,3,3,3,3};
        //返回二分查找第一次匹配到元素的索引值,不保证返回的是第一个出现的位置,如果不存在则返回实际插入索引+1的负数
        //2
        System.out.println(Arrays.binarySearch(arr4,3));
        //-6
        System.out.println(Arrays.binarySearch(arr4,10));
        //数组区间查找,[0,3),返回第一次命中的下表
        System.out.println(Arrays.binarySearch(arr4,0,3,3));

Arrays.copyOf()和Arrays.copyOfRange()

  int arr5[] = {1,2,3,4,5};
        //拷贝前三个元素[1,2,3]
        int[] arr6 = Arrays.copyOf(arr5, 3);
        //拷贝下标[2,5):[3,4,5]
        编程int[] arr7 = Arrays.copyOfRange(arr5, 2, 5);
        //若超过arr5长度,后面元素补0:[3,4,5,0,0...]
        copyOfRange(arr5, 2, 9);

Arrays.asList()

//将对象数组转为list集合,不能是基本类型的数组
Integer arrpython8[] = {1,2,3,4,5};
List<Integer> list = Arrays.asList(arr8);

Collections.addAll()

List<Integer> list = new ArrayList<>();
//向集合中一次添加多个元素
Collections.addAll(list,2,4,3,23,43);

Collections.sort()

//根据类型中实现的Comparable接口的compareTo()方法排序,或第二个参数放入自定义的比较器
Collections.sort(list);

Collections.binarySearch()

   //二分查找,获取指定元素的索引,若未查找到,返回应插入的元素位置的负数-(索引+1)
        int idx = Collections.binarySearch(list, 3);
        System.out.println("key 下标为:"+ idx);

Collections.shuffle()

      Collections.addAll(list,2,4,3,23,43);
        Collections.sort(list);
        System.out.println(list);
        //打乱顺序
        Collections.shuffle(list);
        System.out.println(list);

结果:

Java中Arrays类和Collections类常用方法示例详解

Collections.reverse()    ​​​​​​​

    //翻转元素顺序
        Collections.reverse(list);
        System.out.println(list);

Collections.min() & Collections.max()

//根据元素类型实现的Comparable接口中的compareTo()方法比较获取最大值和最小值
        int max = Collections.max(list);
        System.out.println("最大值:" + max);
        int min = Collections.min(list);
        System.out.println("最小值:" + min);

Collections.fill()

//集合中所有元素设置为0
Collections.fill(list, 0);

Collections.swap()

//交换集合中两个索引的元素
Collections.swap(list, 0, 2);

Collections.copy()

//拷贝一个集合到另一个集合中
        List<Integer> list2 = new ArrayList<>();
        List<Integer> list3 = new ArrayList<>();
        //将list3拷贝到list2中,list3的长度必须小于等于list2
        Collections.addAll(pythonlist3,1,2,3,4,5);
        Collections.addAll(list2,0,0,0,0,0);
        Collections.copy(list2,lisjavascriptt3);
        System.out.println(list2);

Collections.replaceAll()

       //集合中所有元素为2的值替换为100
        System.out.println(list2);
        Collections.replaceAll(list2,2,100);

到此这篇关于Java中Arrays类和Collections类常用方法的文章就介绍到这了,更多相关java arrays类和collections类内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜