java集合 List Set Map

import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import cn.domain.User;


public class UList {

 /**
  *
  * list排序:Collections.sort(list, new NameComparator());
  * list混洗:Collections.shuffle(list);
  *
  * Set 调用了User的hashcode()
  * HashSet 无序
  * TreeSet 有序 ,User 实现Comparable接口
  * LinkedHashSet: 插入的顺序
  *
  * Map 调用了key: User的hashcode()
  * HashMap: 无序
  * TreeMap: 按键排序   User实现Comparable
  * WeakHashMap: 无序
  *
  * treemap add:17 size:10000
  * hashmap add:13 size:10000
  * treemap add:14 size:10000
  *
  * hashset add:13 size:10000
  * treeset add:19 size:10000
  * linkedhashset add:15 size:10000
  *
  * arraylist add:2 size:10000       插入2毫秒          数组实现
    arraylist delete:16  size:0              删除16毫秒
  *
  * linkedlist add:2 size:10000   插入2毫秒            单链表
    linkedlist delete:3  size:0      删除3毫秒
  *
  *
  */
 public static void main(String[] args) {

//  String[] names =new String[]{"a","b","c"};
//  List<User> list =new ArrayList<User>();
//  long start=System.currentTimeMillis();
//  int len =10000;
//  for(int i=0;i<len;i++){
//   list.add(new User(i+"","" + i));
//  }
//  long end=System.currentTimeMillis();
//  System.out.println("arraylist add:"+(end-start)+" size:"+list.size());
//  for(int i=0;i<len;i++){
//   list.remove(0);
//  }
  //list.removeAll(list);
  //list.clear();
  //print(list);
  //Collections.sort(list, new NameComparator());
  //Collections.shuffle(list);
//  print(list);
//  start=System.currentTimeMillis();
//  System.out.println("arraylist add:"+(start-end)+"  size:"+list.size());
  
  //Set<User> set =new HashSet<User>();//Set 调用了User的hashcode()
  //Set<User> set =new TreeSet<User>();
  Set<User> set =new LinkedHashSet<User>();
  long start=System.currentTimeMillis();
  int len =10000;
  for(int i=0;i<len;i++){
   set.add(new User(i+"","" + i));
  }
  long end=System.currentTimeMillis();
  //printSet(set);
  //set = Collections.unmodifiableSet(set);
  
  System.out.println("arraylist add:"+(end-start)+" size:"+set.size());
  //printSet(set);
  
  
  //Map<String,User> map =new HashMap<String,User>();
  //Map<String,User> map =new TreeMap<String,User>();
  /*Map<String,User> map =new WeakHashMap<String,User>();
  long start=System.currentTimeMillis();
  int len =10;
  for(int i=0;i<len;i++){
   map.put(""+i, new User(i+"","" + i));
  }
  long end=System.currentTimeMillis();
  printMap(map);
  System.out.println("arraylist add:"+(end-start)+" size:"+map.size());
  */
  
  //Map<User,Object> map =new HashMap<User,Object>();
    //Map<User,Object> map =new TreeMap<User,Object>();
    /*Map<User,Object> map =new WeakHashMap<User,Object>();
    long start=System.currentTimeMillis();
    int len =10000;
    for(int i=0;i<len;i++){
     map.put(new User(i+"","" + i),null);
    }
    long end=System.currentTimeMillis();
    //printMap2(map);
    System.out.println("treemap add:"+(end-start)+" size:"+map.size());
    */
  
 }
 
 
 static class NameComparator implements Comparator{

  public int compare(Object o1, Object o2) {
   if(!(o1 instanceof User)){
    return 0;
   }
   if(!(o2 instanceof User)){
    return 0;
   }
   User u1 =(User)o1;
   User u2 = (User)o2;
   String name1 = u1.getUserName();
   String name2 = u2.getUserName();
   
   return name1.compareTo(name2);
  }
  
 }
 
 static void print(List<User> list){
  User u=null;
  for(int i=0;i<10;i++){
   u = list.get(i);
   System.out.println("id: "+ u.getUserId() +" name:"+u.getUserName());
  }
 }
 
 static void printSet(Set<User> set){
  User u=null;
  Iterator<User> it = set.iterator();
  int i=0;
  while(it.hasNext()){
   if(i>10)
    break;
   u = it.next();
   System.out.println("id: "+ u.getUserId() +" name:"+u.getUserName());
   i++;
  }
 }
 
 static void printMap(Map<String,User> map){
  Entry<String,User> u=null;
  Set<Entry<String,User>> set =map.entrySet();
  Iterator<Entry<String,User>> it = set.iterator();
  int i=0;
  while(it.hasNext()){
   if(i>10)
    break;
   u = it.next();
   System.out.println("key: "+ u.getKey() +" user:"+u.getValue().getUserName());
   i++;
  }
 }
 
 static void printMap2(Map<User,Object> map){
  Entry<User,Object> u=null;
  Set<Entry<User,Object>> set =map.entrySet();
  Iterator<Entry<User,Object>> it = set.iterator();
  int i=0;
  while(it.hasNext()){
   if(i>10)
    break;
   u = it.next();
   System.out.println("key: "+ u.getKey().getUserName() +" val:"+u.getValue());
   i++;
  }
 }

}

猜你喜欢

转载自zw7534313.iteye.com/blog/2224365