集合框架工具类Collections
程序员文章站
2024-01-14 09:15:52
...
* Collections演示。
* 1,用于操作集合的工具类。
* 2,提供了很多的静态方法。
*
* 比如对list集合排序,二分查找,位置置换。
* 对排序的元素进行顺序的逆转。reverseOrder
* 还可以获取集合的最大值和最小值。
* 最牛叉的是将非同步的集合转成同步的集合 synchronizedXXX
package cn.itcast.p4.collections;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import cn.itcast.p2.comparator.ComparatorByLength;
public class CollectionsDemo {
public static void main(String[] args) {
sortDemo();
}
//1,演示Collections中的排序,元素重复的集合排序,是针对List的方法。
public static void sortDemo(){
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("aaaaaaa");
list.add("hahah");
list.add("cba");
System.out.println(list);//List集合本身有序,不是有排序
//排序方法。
//Collections.sort(list);//按字典顺序排序
//Collections.sort(list,new comparatorByLength());//比较器排序,按字符串长度排序
//Collections.sort(list,Collections.reverseOrder());//按字典的排序逆转
//Collections.sort(list,Collections.reverseOrder(new ComparatorByLength()));//将已有的比较器的排序逆转
//String max = Collections.max(list);//获取自然排序下的排在最后的值
//String max = Collections.max(list,new ComparatorByLength());//获取比较器下排在最后的值
String max = myMax(list);//自定义按字典顺序获取最大值,
//String max = myMax(list,new ComparatorByLength());//按比较器的顺序取得的最大值
System.out.println("max="+max);
System.out.println(list);
}
//模拟一个max方法。获取集合中的最大值。
public static <T extends Object & Comparable<? super T>> T myMax(Collection<? extends T> coll){
Iterator<? extends T> it = coll.iterator();
//定义一个记录较大值的变量。
T max = it.next();
while(it.hasNext()){
T temp = it.next();
if(temp.compareTo(max)>0){
max = temp;
}
}
return max;
}
public static String myMax(Collection<String> coll, Comparator<String> comp){
Iterator<String> it = coll.iterator();
//定义一个记录较大值的变量。
String max = it.next();
while(it.hasNext()){
String temp = it.next();
if(comp.compare(temp, max)>0){
max = temp;
}
}
return max;
}
}
转载于:https://blog.51cto.com/pengya123/1783655
上一篇: 一个基于jquey的自动完成与分页
下一篇: oracle和mysql的递归查询方法