① 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());
}
}
输出效果: