map和list 的相互转换

来源:互联网 发布:淘宝关键词挖掘大师 编辑:程序博客网 时间:2024/05/20 10:24

最近在做项目的时候需要用到list类型的数据转换为map类型,于是在网上查了些资料,其相应的代码均经过测试,并通过!

map形转换成list


1.将map类型相对应的value值放在list中
    import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

public class project2 {
public static List  mapTransitionList(Map map) {
List list = new ArrayList();
Iterator iter = map.entrySet().iterator();  //获得map的Iterator
while(iter.hasNext()) {
Entry entry = (Entry)iter.next();
list.add(entry.getValue());   //只是获取相对应的value值
}
return list;
}
public static void main(String[] args) {
Map map = new HashMap();
map.put("name", "悟道");
map.put("lever", "初级");
map.put("language", "java");
List list = mapTransitionList(map);
                List list2=new ArrayList(map.values());
for(int i=0; i<list.size(); i++) {
System.out.println(list.get(i));
                        System.out.println(list2.get(i));
}
}
}
结果:
悟道
java
初级


2.将map放到list中
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

public class project2 {
public static List  mapTransitionList(Map map) {
List list = new ArrayList();
Iterator iter = map.entrySet().iterator();  //获得map的Iterator
while(iter.hasNext()) {
Entry entry = (Entry)iter.next();
list.add(entry);   
}
return list;
}
public static void main(String[] args) {
Map map = new HashMap();
map.put("name", "悟道");
map.put("lever", "初级");
map.put("language", "java");
List list = mapTransitionList(map);
            
for(int i=0; i<list.size(); i++) {
System.out.println(list.get(i));
                      
}
}
}

结果:
name=悟道
language=java
lever=初级
3.将map的key和value放在不同的list中
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class project3 {
public static void testMapVoid (Map map) {  
       
  
       List listKey = new ArrayList();  
       List listValue = new ArrayList();  
       Iterator it = map.keySet().iterator();  
       while (it.hasNext()) {  
           String key = it.next().toString();  
           listKey.add(key);  
           listValue.add(map.get(key));  
       }  
       System.out.println("Convert Finished !");  
         
       for(int i =0 ;i<listKey.size();i++){  
           System.out.print("Key :"+listKey.get(i));  
           System.out.println("     Value :"+listValue.get(i));  
       }  
   } 
public static void main(String [] args){
 Map map = new HashMap();  
       map.put("a", "a1");  
       map.put("b", "b1");  
       map.put("c", "c1"); 
       testMapVoid(map);
}
}
结果:
Key :b     Value :b1
Key :c     Value :c1
Key :a     Value :a1
4.将整个map转换为list的一条数据
 import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

public class project2 {
public static void main(String[] args) {
Map map = new HashMap();
map.put("name", "悟道");
map.put("lever", "初级");
map.put("language", "java");
List<Map> list =new ArrayList<Map>();
                list.add(map);
for(int i=0; i<list.size(); i++) {
System.out.println(list.get(i));
}
}
}
结果:
    [{name=悟道, language=java, lever=初级}]

list形转换成map

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
 
public class Test{
    static List<Object[]> list= new ArrayList<Object[]>();
     
    public static void main(String args[]){
        Object a = new Object();
        Object s = new Object();
        Object[] o1= {a,1};
        Object[] o2= {a,2};
        Object[] o3= {a,3};
        Object[] s1= {s,1};
        Object[] s2= {s,3};
        list.add(o1);list.add(o2);list.add(o3);list.add(s1);list.add(s2);
        HashMap<Object,List> map = new HashMap<Object,List>();
        for (int i = 0; i < list.size(); i++) {
              Object[] array=list.get(i);
              if(map.containsKey(array[0])){
                  map.get(array[0]).add(array[1]);
              }
              else{
                  List list= new ArrayList();
                  list.add(array[1]);
                  map.put(array[0],list);
              }
        }
        System.out.println(map.size());
        System.out.println(map.get(a));
        System.out.println(map.get(s));
    }
}
结果:

2

[1, 2, 3]

[1, 3]

原创粉丝点击