遍历list数组

来源:互联网 发布:舍利子到底是什么知乎 编辑:程序博客网 时间:2024/06/05 04:11
 

package org.cric.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.Vector;
import java.util.Map.Entry;

public class IteratorArrayList {

 /**
  * @param args
  */
 public static void main(String[] args) {
  
    //方法一:
    List<String[]> s=new ArrayList<String[]>();
   s.add(new String[]{"1","a"});
   s.add(new String[]{"2","b"});
   s.add(new String[]{"2","c"});
   s.add(new String[]{"1","d"});
   s.add(new String[]{"1","e"});
   Set<String> set=new HashSet<String>();
   for (int i = 0; i < s.size(); i++) {
    StringBuffer sb=new StringBuffer();
    sb.append(s.get(i)[0]+":");
    for (int j = 0; j < s.size(); j++) {
     if (s.get(i)[0].equals(s.get(j)[0])) {
      sb.append(s.get(j)[1]+",");
     }
    }
    if (sb.length()!=4) {
     set.add(sb.toString());
    }
   }
   System.out.println("方法一中的打印结果:"+set);

  //方法二:
  String data[][]={
       {"1","a"},
       {"2","b"},
       {"2","c"},
       {"1","d"},
       {"1","e"},
       {"2","f"},
       {"3","g"}
      };     
      HashMap<String, Vector<String>> map=new HashMap<String, Vector<String>>();
      for(String a[]:data){
       Vector<String> v;
       if(map.containsKey(a[0])){
        v=map.get(a[0]);
        v.add(a[1]);       
       }else{
        v=new Vector<String>();
        v.add(a[1]);
        map.put(a[0],v);
       }
      }     
      //以上已经排好,下面仅仅为了显示    
      Iterator<Entry<String, Vector<String>>> iter=map.entrySet().iterator();
      System.out.println("方法二中打印的结果为:");
      while(iter.hasNext()){
       Entry<String, Vector<String>> e=iter.next();
       System.out.print(e.getKey()+" => ");
       Vector<String> v=e.getValue();
       Iterator<String> v_iter=v.iterator();
       int count=0;
       while(v_iter.hasNext())     
        System.out.print((count++>0?",":"")+v_iter.next());
       System.out.println("");      
      }
 }

}
/*

           方法一中的打印结果:[1:a,d,e,, 2:b,c,]
           方法二中打印的结果为:
           3 => g
           2 => b,c,f
           1 => a,d,e*/