工具类Arrays和Collections

一、Arrays工具类的使用

说明:java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比 如排序和搜索)的各种方法。

1、常用方法:

@Test
public void testArrays(){
    int[] arr1 = new int[]{1, 2, 3, 4};
    int[] arr2 = new int[]{1, 3, 2, 4};

    //1.boolean equals(int[] a,int[] b):判断两个数组是否相等。
    boolean isEquals = Arrays.equals(arr1, arr2);
    System.out.println(isEquals);//false

    //2.String toString(int[] a):输出数组信息。
    System.out.println(Arrays.toString(arr1));//[1, 2, 3, 4]

    //3.void fill(int[] a,int val):将指定值填充到数组之中。
    Arrays.fill(arr1, 10);
    System.out.println(Arrays.toString(arr1));//[10, 10, 10, 10]

    //4.void sort(int[] a):对数组进行排序。
    Arrays.sort(arr2);
    System.out.println(Arrays.toString(arr2));//[1, 2, 3, 4]

    //5.int binarySearch(int[] a,int key):对排序后的数组进行二分法检索指定的值。
    int index = Arrays.binarySearch(arr2, 1);
    System.out.println(index);//0
}

二、Collections工具类的使用

说明:

  • Collections 是一个操作 Set、List 和 Map 等集合的工具类。
  • Collections 中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作, 还提供了对集合对象设置不可变、对集合对象实现同步控制等方法。

1、常用方法:

/*
reverse(List):反转 List 中元素的顺序
shuffle(List):对 List 集合元素进行随机排序
sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序
sort(List,Comparator):根据指定的 Comparator 产生的顺序对 List 集合元素进行排序
swap(List,int, int):将指定 list 集合中的 i 处元素和 j 处元素进行交换

Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
Object max(Collection,Comparator):根据 Comparator 指定的顺序,返回给定集合中的最大元素
Object min(Collection)
Object min(Collection,Comparator)
int frequency(Collection,Object):返回指定集合中指定元素的出现次数
void copy(List dest,List src):将src中的内容复制到dest中
boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换 List 对象的所有旧值

 */

但是要注意

@Test
public void test2(){
    List list = new ArrayList();
    list.add(123);
    list.add(43);
    list.add(765);
    list.add(-97);
    list.add(0);

    //错误方式:
    //        List dest = new ArrayList();
    //        Collections.copy(dest,list);

    //正确的:
    List dest = Arrays.asList(new Object[list.size()]);
    System.out.println(dest.size());//list.size();
    Collections.copy(dest,list);

    System.out.println(dest);//[123, 43, 765, -97, 0]


    /*
        Collections 类中提供了多个 synchronizedXxx() 方法,
        该方法可使将指定集合包装成线程同步的集合,从而可以解决
        多线程并发访问集合时的线程安全问题

         */
    //返回的list1即为线程安全的List
    List list1 = Collections.synchronizedList(list);


}
posted @ 2020-03-29 20:15  小燃、  阅读(162)  评论(0编辑  收藏  举报