java集合工具类---Collections/Arrays
/*
*Collections用于操作List/Set的工具类
*Arrays用于操作数组的工具类
*/
package pack;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
//method_Collections();
method_Arrays();
}
public static void sys(Object obj) {
System.out.println(obj);
}
public static void method_Collections() {
/*父类引用指向子类对象,一个接口有多种实现*/
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("cd");
list.add("bcd");
Collections.sort(list); //自然比较
//Collections.sort(list,new MyComparator()); //集合工具类,排序,不能用于Set
//sys(Collections.max(list));
sys(list);
//binarySearch二分查找找出索引位置,使用前集合必须有序
int index = Collections.binarySearch(list, "bcd");
sys(index);
Collections.fill(list, "pp"); //将集合中所有元素全替换为pp
Collections.replaceAll(list, "pp", "cd"); //将指定元素替换
Collections.reverse(list); //翻转
/*//reverseOrder将TreeSet的自然排序取反,reverseOrder(new MyComparator())将比较器取反
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new MyComparator()));
ts.add("abc");
ts.add("kk");
ts.add("bbbn");
sys(ts);*/
}
public static void method_Arrays() { //数组方法很少,用Arrays工具或者将数组转换为List大有好处
int[] arr = {8,5,4,3,1};
//sys(Arrays.binarySearch(arr, 4));//binarySearch二分查找找出索引位置
int[] arr1 = Arrays.copyOf(arr, 3); //将arr中3个元素复制到arr1中
int[] arr2 = Arrays.copyOfRange(arr, 1, 4); //将arr中从1到3复制到arr2中
sys(Arrays.equals(arr, arr1)); //比较两个数组
//Arrays.fill(arr, 1); //将数组中元素全部换为1
//Arrays.fill(arr, 1,3,6);//将数组中下标为1-2的元素换为6
//Arrays.sort(arr); //数组中元素排序
Arrays.sort(arr,1,3); //将数组中下标为1-2的元素排序
String s = Arrays.toString(arr); //将数组变为字符串
/*如果数组中元素是对象,变为集合时,数组中元素转为集合中元素 ---数组变集合---
如果数组中元素是基本数据类型,如int,变为集合时,该数组作为集合中元素存在,所以不要用int而用Integer
Integer[] array1 = {2,3,5,7}; //将整形数组变为List集合
List<Integer> list1 = Arrays.asList(array1);
String[] array = {"abc","kkk","psh"};
List<String> list = Arrays.asList(array); //将字符串数组变为List集合
//list.add("he");//不可以增删,数组长度是不变的
sys(list.contains("kkk"));*/
/* ---集合变数组---
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("cd");
list.add("bcd");
String[] arr5 = list.toArray(new String[list.size()]);
sys(Arrays.toString(arr5));*/
}
}
class MyComparator implements Comparator<String> {
public int compare(String s1,String s2) {
if(s1.length()>s2.length())
return 1;
if(s1.length()<s2.length())
return -1;
return s1.compareTo(s2);
}
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。