java基础37 集合框架工具类Collections和数组操作工具类Arrays

时间:2023-02-24 23:25:35

一、集合框架工具类:Collections

1.1、Collections类的特点

    该工具类中所有的方法都是静态

1.2、Collections类的常用方法

    binarySearch(List<? extends Comparable<? super T>> list, T key):使用二叉搜索算法搜索指定对象的指定列表。注:使用binarySearch()方法前,必须先使用sort()方法 正序排序
    sort(List<T> list):正序排序
    reverse(List<?> list):倒序排序
    max(Collection<? extends T> coll):找最大值
    copy(List<? super T> dest, List<? extends T> src):将所有元素从一个列表复制到另一个列表中。

1.3、实例

 1 package com.dhb.collection;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Arrays;
 5 import java.util.Collections;
 6 import java.util.List;
 7 
 8 /**
 9  * @author DSHORE / 2018-5-30
10  *
11  */
12 public class Demo25 {
13     public static void main(String[] args) {
14         ArrayList<Integer> list = new ArrayList<Integer>();
15         list.add(2);
16         list.add(1);
17         list.add(9);
18         list.add(6);
19         Collections.sort(list);//正序排序
20         System.out.println(list);//返回值:[1, 2, 6, 9]
21         
22         int t=Collections.binarySearch(list, 2);//使用二叉搜索算法搜索指定对象的指定列表。注:使用binarySearch()方法前,必须先使用sort()方法 正序排序
23         System.out.println(t);//返回值:1
24         
25         Collections.reverse(list);//倒序排序
26         System.out.println(list);//返回值:[9, 6, 2, 1]
27         
28         int m=Collections.max(list);//找最大值
29         System.out.println(m);//返回值:9
30         
31         //List<Integer>换成ArrayList<Integer>报错
32         List<Integer> list2 = Arrays.asList(new Integer[list.size()]);//如果换成ArrayList<Integer> list2=new ArrayList<Integer>(); 则报IndexOutOfBoundsException异常
33         Collections.copy(list2,list);
34         for (Integer s : list2) {  
35             System.out.print(s+",");//返回值:9,6,2,1,
36         } 
37     }
38 }

二、数组操作工具类:Arrays

2.1、Arrays类的常用方法

二分查找,要查找的数组必须是有序的数组
    binarySearch(int[])
    binarySearch(double[])
1、数组排序
    sort(int[])
    sort(char[])
2、将数组变成字符串
    toString(int[])
3、复制数组
    copyOf()
4、复制部分数组
    copyOfRange()
5、比较两个数组是否相同
    equals(int[],int[])
6、将数组变成集合
    List asList(T[])

2.2、实例

 1 package com.dhb.collection;
 2 
 3 import java.util.Arrays;
 4 import java.util.List;
 5 
 6 /**
 7  * @author DSHORE / 2018-5-30
 8  *
 9  */
10 public class Demo26 {
11     public static void main(String[] args) {
12         int[] i=new int[7];
13         i[0]=5;
14         i[1]=1;
15         i[2]=6;
16         i[3]=8;
17         i[4]=10;
18         i[5]=2;
19         i[6]=38;
20         System.out.println(Arrays.toString(i));//返回值:[5, 1, 6, 8, 10, 2, 38]
21     
22         Arrays.sort(i);//正序排序
23         System.out.println(Arrays.toString(i));//返回值:[1, 2, 5, 6, 8, 10, 38]
24         
25         int a=Arrays.binarySearch(i,10);
26         System.out.println(a);//返回值:5
27         
28         int[] in=Arrays.copyOf(i,8);//从数组i中复制8个元素到数组in中。(因为数组i的长度为7,这里是8个长度,那么多出来的那位将用0代替)
29         System.out.println(Arrays.toString(in));//返回值:[1, 2, 5, 6, 8, 10, 38, 0]
30         int[] in2=Arrays.copyOf(i,6);//从数组i中复制6个元素到数组in2中。(复制是从下标0开始到5结束。6个)
31         System.out.println(Arrays.toString(in2));//返回值:[1, 2, 5, 6, 8, 10]
32         
33         int[] it=new int[10];
34         it=Arrays.copyOfRange(i, 1, 5);//copyOfRange():复制部分数组
35         System.out.println(Arrays.toString(it));//返回值:[2, 5, 6, 8]
36         
37         //把数组变为集合
38         List<String> list=Arrays.asList(Arrays.toString(i));
39         System.out.println(list);//返回值:[[1, 2, 5, 6, 8, 10, 38]]
40     }
41 }

 

附:Collection与Collections,Array与Arrays的区别

 

 

 

 

原创作者:DSHORE

作者主页:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/9115101.html

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!