java基础37 集合框架工具类Collections和数组操作工具类Arrays
一、集合框架工具类: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 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |