java集合框架實例代碼

import java.util.*;
import java.util.Map.Entry;


public class TestMuster {

public static void main(String[] args) {
   //new TestMuster().testCollection();
        //new TestMuster().testHashSet();
        //new TestMuster().testList();
        //new TestMuster().testMap();
        new TestMuster().testCompositor();
  
}



public void testCollection(){
  
  
   Collection cols = new HashSet();   //無序不重複
   cols.add(12); //添加
   cols.add(11);
   cols.add(12);
   cols.add(13);
   cols.add(12);
   cols.add(13);
   cols.add(10);
   cols.remove(13); //移除
   Iterator irs = cols.iterator(); //重點是Iterator接口的枚舉遍歷
   while(irs.hasNext()){
      int is = (Integer)irs.next();
      System.out.println("Set無序不重複is=="+is);
   }
   System.out.println("---------------------------------");
  
     Collection coll = new LinkedList(); //有序可重複
   coll.add(8);
   coll.add(9);
   coll.add(8);
   Iterator irtl = coll.iterator();
   while(irtl.hasNext()){
    int il = (Integer)irtl.next();
    System.out.println("List有序可重複il=="+il);
   }
   System.out.println("---------------------------------");
  
  
  
   // 以ArrayList類爲例:集合元素的增刪改查
   Collection cola = new ArrayList(); //和具體的實現類從理論上說沒有關係
   // 往集合裏添加對象 add(Object o);
   cola.add(1);
   cola.add(2);
   cola.add(2);
   cola.add(3);
   cola.add(4);
   cola.add(2);
   cola.add(3);
   cola.add(4);
  
   cola.remove(3); //從集合裏移除
      //cola.remove(3);
  
   Object[] boj = cola.toArray(); //集合裏數據更新的方法: 先清空在add, toArray(),就是暫存數組裏
   cola.clear();
   for(int i = 0; i < boj.length; i++){
    if(boj[i].equals(2)){
     boj[i] = 8;
    }
    cola.add(boj[i]);
   }
  
   Iterator irta = cola.iterator(); // 枚舉遍歷   java.util.Iterator接口的使用
     while(irta.hasNext()){
     int ia = (Integer)irta.next(); //轉化爲基礎類型包裝類整型類對象
     System.out.println("i=="+ia);
     }
    
     int ias = cola.size();
     System.out.println(ias);
     System.out.println("---------------------------------");
    
}




// 添加複雜對象的HashSet類:順便測試對象的調用默認方法的順序
public void testHashSet(){
   Set rset = new HashSet();
   FuzaO fdx = new FuzaO();
     fdx.setAge(20);
     fdx.setUserId("26");
     fdx.setUsername("xuechong");
     rset.add(fdx);
   Iterator itr = rset.iterator();
   while(itr.hasNext()){
    FuzaO str = (FuzaO)itr.next();
    System.out.println(str);    //重寫toString方法!
   }
}





public void testList(){
   List tis = new ArrayList();
   FuzaO fdx = new FuzaO();
     fdx.setAge(20);
     fdx.setUserId("26");
     fdx.setUsername("xuechong");
     tis.add(fdx); //增加複雜對象
     tis.add(3);    //增加簡單對象
     tis.add(5);
     tis.add(10);
     tis.remove(2); //刪除指定對象,2代表順序,即序列號,並不是代表個數
     int io = tis.size();   //List裏對象的個數 int tis.size()
     System.out.println("List裏的對象的個數是:"+io);
     tis.set(1,"2");    //List裏這樣更新數據多方便啊!!!
     tis.set(2,"2000");
     System.out.println("tis.get(0)/n"+tis.get(0)); //從取數據的另外一種寫法
     System.out.println("tis.get(1)/n"+tis.get(1));
   Iterator itr = tis.iterator(); //集合的遍歷查詢模式
   while(itr.hasNext()){    
    Object str = (Object)itr.next();
    System.out.println(str);    //重寫toString方法!
     }
     }


    
     public void testMap(){
     Map map1 = new HashMap();
    
     //Map的增刪改查
     //add,     map1.put(Object o1, Object o2);
     map1.put("a", "3");
     map1.put("b", "2");
     map1.put("c", "1");
     map1.put("d","4");
    
     //update,   update的思想就是覆蓋原來的key值,其實還是add ,用put()方法
     map1.put("a", "100");
     map1.put("d", "hehehe");
    
     //delete ,其實就是隻刪除key就行了
     map1.remove("c");
    
    
     Set mapset = map1.keySet();
     Iterator itr = mapset.iterator();
     while(itr.hasNext()){
        String skey = (String)itr.next();
        String svalue = (String)map1.get(skey); //value是根據key直接在Map裏拿
        System.out.println("key=="+skey+",value=="+svalue);
     }
     System.out.println("-----");
    
     Set setentry = map1.entrySet();
     Iterator entryit = setentry.iterator();
     while(entryit.hasNext()){
        Entry en = (Entry)entryit.next();
        String skey2 = (String)en.getKey();
        String svalue2 = (String)en.getValue();
        System.out.println("key2=="+skey2+",value2=="+svalue2);
     }
     System.out.println("--------------------------------");
     }
    
    
    
     public void testCompositor(){
     Collection ctree = new TreeSet();
     FuzaO ff1 = new FuzaO();
     ff1.setAge(20);
     ff1.setUserId("a");
     ff1.setUsername("3");
     ctree.add(ff1);
    
     FuzaO ff2 = new FuzaO();
     ff2.setAge(30);
     ff2.setUserId("d");
     ff2.setUsername("5");
     ctree.add(ff2);
    
     FuzaO ff3 = new FuzaO();
     ff3.setAge(25);
     ff3.setUserId("c");
     ff3.setUsername("4");
     ctree.add(ff3);
    
     Iterator itr = ctree.iterator();
     while(itr.hasNext()){
        FuzaO f = (FuzaO)itr.next();
        System.out.println(f);
     }
     }
     
   }


class FuzaO implements Comparable{
   // 設置方法:在source裏點擊:hasCode()和equals()重寫
   private int age;
   private String userId;
   private String username;
  
  
   @Override
    
     public int compareTo(Object obj){
     FuzaO f1 = (FuzaO)obj;
     if(this.getUsername().compareTo(f1.getUsername()) > 0){
        return 1;
     }else if(this.getUsername().compareTo(f1.getUsername()) == 0){
        return 0;
     }else{
        return -1;
     }
     }
@Override
public int hashCode() {
   System.out.println("hashCode===========");
   final int prime = 31;
   int result = 1;
   result = prime * result + ((userId == null) ? 0 : userId.hashCode());
   return result;
}
@Override
public boolean equals(Object obj) {
   System.out.println("equals()============");
   if (this == obj)
    return true;
   if (obj == null)
    return false;
   if (getClass() != obj.getClass())
    return false;
   FuzaO other = (FuzaO) obj;
   if (userId == null) {
    if (other.userId != null)
     return false;
   } else if (!userId.equals(other.userId))
    return false;
   return true;
}
@Override
public String toString() {   //重寫toString方法!
   System.out.println("toString=============");
   return "age="+age+"/n"+"userId="+userId+"/n"+"username="+username;
}
public int getAge() {
   return age;
}
public void setAge(int age) {
   this.age = age;
}
public String getUserId() {
   return userId;
}
public void setUserId(String userId) {
   this.userId = userId;
}
public String getUsername() {
   return username;
}
public void setUsername(String username) {
   this.username = username;
}
  
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章