关于集合工具类: java.util.Collections; 类
【注意】 java.util.collection;是接口 注意区分
package com.company.collectionsUtil;
/*
关于集合工具类: java.util.Collections; 类
【注意】 java.util.collection;是接口 注意区分
*/
import java.util.*;
public class collectionsTest01 {
public static void main(String[] args) {
// 使用collection工具完成集合的排序
List l = new ArrayList();
// 添加元素
l.add(10);
l.add(5);
l.add(20);
l.add(30);
// 遍历(List集合特有的遍历方式)
for(int i=0; i<l.size(); i++){
System.out.println(l.get(i));
}
System.out.println("========================");
// 或者采用迭代器
for(Iterator it=l.iterator(); it.hasNext();){
System.out.println(it.next());
}
System.out.println("========================");
// 排序 Collections.sort() 只能对Set集合进行排序
Collections.sort(l);
for(Iterator it=l.iterator(); it.hasNext();){
System.out.println(it.next());
}
System.out.println("========================");
// 这里给定一个Set集合
Set s = new HashSet();
s.add(1);
s.add(10);
s.add(9);
s.add(8);
s.add(7);
// 使用Collections.sort()对Set集合无法排序
//Collections.sort(s);
// 将Set集合转换成List集合
List listS = new ArrayList(s);
Collections.sort(listS);
for(Iterator it=listS.iterator(); it.hasNext();){
System.out.println(it.next());
}
System.out.println("========================");
// 创建List集合,List集合中存储Person类型,是否可以排序?
// Collections工具类可以对List集合中的元素排序,但是集合中的元素必须是“可比较的”,即实现Comparable接口
List ps = new ArrayList();
ps.add(new Product(3.14));
ps.add(new Product(2.23));
ps.add(new Product(2.45));
ps.add(new Product(7.32));
ps.add(new Product(6.26));
Collections.sort(ps);
for(int i=0; i<ps.size(); i++){
System.out.println(ps.get(i));
}
// 将ArrayList集合转换成线程安全的
List myList = new ArrayList();
Collections.synchronizedList(myList);
}
}
class Product implements Comparable{
double price;
Product(double price){
this.price = price;
}
public String toString(){
return "Product[price:" + price +"]";
}
public int compareTo(Object o){
double price1 = this.price;
double price2 = ((Product)o).price;
if(price1 < price2 ){
return -1;
}else if(price1 > price2){
return 1;
}else{
return 0;
}
}
}