/* 开发中如何选择集合实现类? 取决于业务操作的特点 1.判断存储类型(一组对象[单列]或一组键值对[双列]) 2.一组对象(单列):Collection接口 允许重复:List 增删多:LinkedList(底层维护了一个双向链表) 改查多:ArrayList(底层维护了Object类的可变数组) 不允许重复:Set 无序:HashSet(底层HashMap,维护了一个哈希表(数组+链表+红黑树)) 排序:TreeSet 插入和取出顺序一致:LinkedHashSet,维护了数组+双向链表 3.一组键值对:Map 键无需:HashMap(底层哈希表(数组+链表+红黑树)) 键排序:TreeMap 键插入和取出顺序一致:LinkedHashMap 读取文件 Properties */
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /* Collections工具类 1.Collections是一个操作Set、List和Map等集合的工具类 2.Collections中提供了一系列静态方法对集合元素进行排序、查询、修改等操作 排序操作: 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对象的所有旧值 */ @SuppressWarnings({"all"}) public class Tools01 { public static void main(String[] args) { //创建 ArrayList 集合,用于测试. List list = new ArrayList(); list.add("tom"); list.add("smith"); list.add("jack"); list.add("john"); System.out.println(list);//[tom, smith, jack, john] //reverse(List) Collections.reverse(list); System.out.println(list);//[john, jack, smith, tom] //shuffle(List) Collections.shuffle(list); System.out.println(list);//随机 //sort(List) Collections.sort(list); System.out.println(list);//[jack, john, smith, tom] //sort(List,Comparator) Collections.sort(list, new Comparator(){ @Override public int compare(Object o1, Object o2) { return ((String) o1).length() - ((String) o2).length();//按照字符串长度排序 } }); System.out.println(list);//[tom, jack, john, smith] //swap(List,int,int) Collections.swap(list,0,2); System.out.println(list);//[john, jack, tom, smith] //Object max(Collection) System.out.println(Collections.max(list));//tom //Object max(Collection,Comparator) Object max = Collections.max(list, new Comparator() { @Override public int compare(Object o1, Object o2) { return ((String) o1).length() - ((String) o2).length(); } }); System.out.println(max);//smith //Object min(Collection),Object min(Collection,Comparator)同上 //int frequency(Collection,Object) System.out.println(Collections.frequency(list,"jack"));//1 //void copy(List dest,List src) ArrayList dest = new ArrayList(); //为了拷贝,需要先给 dest 赋值,大小和 list.size()一样,否则 for (int i = 0; i < list.size(); i++) { dest.add(" "); } Collections.copy(dest,list); System.out.println(dest);//[john, jack, tom, smith] //boolean replaceAll(List list,Object oldVal,Object newVal) Collections.replaceAll(list,"jack","杰克"); System.out.println(list);//[john, 杰克, tom, smith] } }