① java List和Map的問題
確實如題主所說。具體原因應該是數據結構上的問題。查閱HashMap底層原理的相關資料後,大家都說地天花亂墜我也看不懂。看下來我認為吧,HashMap的每一個key,它綁定了它對應value的地址,只要key保持不變,那麼指針位置也就不會改變。地址不變,在任意地方將value的值進行改變,那麼所有get(key)出來的值就跟著改變了。
利用HashMap的這個特性,可以在類和類之間設計變數池,將多個類之間共享的變數放到同一個HashMap中,類與類之間的方法調用參數使用這個變數池,這樣只要變數池裡某個變數的值在一個類中發生了改變,其他類再get這個變數時也能拿到改變後的值了。
② java list轉map
Map<String,ArrayList<String[2]>>
將value轉為數組存入list作為Map的Value
③ java中,下面的List怎麼放入map裡面,求高手!
你首先要了解什麼是Map,可以理解為Map是一堆key和value的映射集合(或者說一堆鍵值對的集合)。
List list = new ArrayList();
Map map = new HashMap();
list.add("a");
list.add("c");
list.add("b");
for(int i =0;i<list.size();i++){
map.put(i, list.get(i));
}
然後你要用Map里的東西,可以使用map.get(1)這種形式獲取,他和list.get(1);
相等都為「c」。
另外建議初始化Map和List的時候,定義好所存的數據類型。
List<String>
list
=
new
ArrayList<String>();
Map<Integer,
String>
map
=
new
HashMap<Integer,
String>();
④ java List<Map<String,Object>> 集合轉換集合 Map<String,List<String>> 在線等 謝謝
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();//你的list
//聲明一個Map用於返回
Map<String,List<String>> map=new HashMap<String,List<String>>();
//循環你拿來的List
for(int i=0;i<list.size();i++){
Map<String,Object> m=list.get(i);
for (String key:m.keySet()) {
List<String> l=map.get(key);
if(l!=null){
l.add((String)m.get(key));
}else{
List<String> newL=new ArrayList<String>();
newL.add((String)m.get(key));
map.put(key, newL);
}
}
}
return map;
注意下:你原來返回的List里裝的事Object我強轉了一下String,沒放到工具里
⑤ java中怎麼list 轉成 map
list 轉成 map 單列轉成雙列,那就需要自己定義一列不重復的數據作為map的key;。
⑥ java 資料庫返回map集合 List<Map<String, Object>>我要轉成 Map<String, List<String>>
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();//你的list
//聲明一個Map用於返回
Map<String,List<String>> map=new HashMap<String,List<String>>();
//循環你拿來的List
for(int i=0;i<list.size();i++){
Map<String,Object> m=list.get(i);
for (String key:m.keySet()) {
List<String> l=map.get(key);
if(l!=null){
l.add((String)m.get(key));
}else{
List<String> newL=new ArrayList<String>();
newL.add((String)m.get(key));
map.put(key, newL);
}
}
}
return map;
這個問題我前2天回答了一模一樣的,。。。。莫非你們是同班同學。。。有疑問可以追問
⑦ java list轉成map問題 map可轉成鍵值對形式
packagecom.cnsuning.com;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
publicclassListToMap{
publicstaticvoidmain(String[]args){
List<String>test=newArrayList<String>();
test.add("domainxn--qprw22hopc.biz");
test.add("term10");
test.add("creation");
test.add("date2017-04-28");
test.add("ns1NS3.MAINONE.COM");
Map<String,String>result=listToMap(test);
System.out.println(result.get("domain"));
}
publicstaticMap<String,String>listToMap(List<String>data){
Map<String,String>result=newHashMap<String,String>();
for(inti=0;i<data.size();i++){
String[]temp=data.get(i).split("[\s]+");
if(temp.length==2){
result.put(temp[0],temp[1]);
}elseif(temp.length==1){
result.put(temp[0],null);
}
}
returnresult;
}
}
你應該是在寫一個網路相關的程序吧?!這個是給你的大致思路,其實你需要在轉換的過程中判斷key的類型,然後把value設置成對應的對象,比如key=「date」的時候,那麼value其實應該是Date類型的,而不是String類型!這時候Map應該是Map<String,Object>
⑧ java,list數組轉換成map
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
publicclassTestArray{
publicstaticvoidmain(String[]args){
/**
*初始化一個List,存放String數組,數組的第一位是amount,第二位是year,第三位是month,第四位是day。
*/
List<String[]>arr=newArrayList<String[]>();
arr.add(newString[]{"89","2015","06","21"});
arr.add(newString[]{"89","2015","06","22"});
arr.add(newString[]{"89","2015","06","23"});
/**
*創建一個StringBuffer臨時存放map.key。
*/
StringBufferkey=newStringBuffer();
/**
*建一個map對象,
*/
Map<String,String>map=newHashMap<String,String>();
for(inti=0;i<arr.size();i++){
//獲取List中的String數組元素。
String[]element=arr.get(i);
//數組的第二位、第三位、第四位拼接成key。
key.append(element[1]).append(element[2]).append(element[3]);
//數組的第一位拼接成value,初始化map。
map.put(key.toString(),element[0]);
//臨時的StringBuffer清空內容以便下次循環繼續使用。
key.delete(0,key.length());
}
//列印map
System.out.println(map.toString());
}
}
輸出效果: