java map转list,java map中有3个key,对应value中的3个list,怎么取出对应的list
java map转list,java map中有3个key,对应value中的3个list,怎么取出对应的list详细介绍
本文目录一览: JAVA中HashMap(哈希表)的使用(List)方法
当hashMap的key是多个字段 且想得到多个value时 可能将key和 value分别做成List
view plaincopy to clipboardprint? import java util Map;
//inquiry result List fromDetailList = instHdDao retrieveInstInfoByView(sysOwnerCd fromCd instruct);
// Initial Value Integer dtTotalTruck = ; Integer dtTotalQuantity = ;
Map hm = new HashMap();
Iterator it = erator(); while(it hasNext()){ MeInstHd meInstHd = (MeInstHd)it next();
List arr = new ArrayList(); List arr = new ArrayList(); List arr = new ArrayList();
String carrierCd = meInstHd getCarrCd() trim();
arr add(carrierCd); // put keyValue to Arr
if(ntainsKey(arr )){ // carrierCd is exist in hm arr = (ArrayList)hm get(arr ); // 通过Key arr 取得arr 的Value arr List arr 中有2列值 他们分别是dtTotalQuantity 和dtTotalTruck
dtTotalQuantity = (Integer)arr get( ) ; dtTotalQuantity += meInstHd sumInstructQty(); dtTotalTruck = (Integer)arr get( ) ; dtTotalTruck += ;
arr add(dtTotalQuantity); arr add(dtTotalTruck);
hm put(arr arr ); // creat hashMap hm } else{ // carrierCd is not exist in hm arr add(meInstHd sumInstructQty()); //put value to arr arr add( ); // dtTotalTruck initial value is
lishixinzhi/Article/program/Java/hx/201311/27090
java map对象转换成list
这个有些麻烦,必须对map尽心迭代,把键值对生成一个个对象,在把对象存入list集合
你是仅仅将value值转换成list对象吗?这个简单,如果你想要全部提出来也是可以的。我发代码你。
public List
mapByList(HashMap
map){
List
list = new ArrayList
();
Set
<entry
> set = map.entrySet();
Iterator
<entry
> it = set.iterator();
//将map对象里面的属性循环遍历出来
while(it.hasNext()){
Entry
entry = it.next();
//得到value值,装到list里面,也可以entry.getKey()。
//如果2个都需要装。可以弄成一个对象来装
list.add(entry.getValue());
}
return list;
}
差不多就这样。
</entry
</entry
怎么把Map类型强制转换成List类型??
转一个:
实现将HashMap转换成为ArrayList,并将map的Key 、Value分别存放到两个ArrayList当中
----------------------------------------------------
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class ConvertMapToList {
/**
* 实现将HashMap转换成为ArrayList,并将map的Key 、Value分别存放到两个ArrayList当中
* @param args
*/
public static void main(String[] args) {
Map map = new HashMap();
map.put("a", "a1");
map.put("b", "b1");
map.put("c", "c1");
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 !");
//output the context of the ArrayList
for(int i =0 ;i
<listkey.size();i++){
System.out.print("Key :"+listKey.get(i));
System.out.println(" Value :"+listValue.get(i));
}
}
}
map不能强制转list
</listkey.size();i++){
java8 怎样将map转换成list
Map与List是两种不同的数据类型,不能直接转换,要说明具体的需求,比如Map中的key和value与List如何对应。
java中如何map转换为数组
List转数组还好说,map好像有点难啊,具体要看你的数据结构,或者做个含有键值属性的对象,然后把map里的东西转成对象,然后扔进数组
list转数组还好理解,map是个键值对集合,怎么可能直接转数组
自己遍历map然后按需求组成数组吧
http://www.cnblogs.com/kristain/articles/2033566.html
map.put("123",newfloat[]{11,11,11});
按照已有的代码,存进去的时候,new一个float数组,直接传值就可以。
或
Map sMap = new HashMap
();
String[] strs = {"1","2"};
sMap.put(strs, "map的键值可以为数组");
System.out.println(sMap.get(strs));//---->map的键值可以为数组。
扩展资料:
一个数组中的所有元素具有相同的数据类型(在C、C++、Java、pascal中都这样。但也并非所有涉及数组的地方都这样,比如在Visual Foxpro中的数组就并没这样的要求)。当然,当数据类型为 Variant 时,各个元素能够包含不同种类的数据(对象、字符串、数值等等)。可以声明任何基本数据类型的数组,包括用户自定义类型和对象变量。
参考资料来源:百度百科-数组
JAVA 如何获取存放在MAP中的list 对象?
答案是:List
c
=
(List)b.get("a");
你可以使用增强FOR循环来做
这样效率更高些。
比如将你的问题完善下:
//初始化数据
ArrayList
list
=
new
ArrayList
();
list.add("test1");
HashMap
>
map
=
new
HashMap
>();
map.put("testMap",list);
//使用增强FOR循环输出结果
for(Map.Entry
>
maps:
map
.entrySet()){
//rtnList就是你想要得到的List
ArrayList
rtnList
=
maps.getValue();
//rtnKey就是map的key
String
rtnkey
=
maps.getKey();
}
JAVAANDROID 数组转换为LIST
String[][] datas = {{"aaa","aa1","aa11"},{"bbb","bb1","bb11"},{"ccc","cc1","cc11"},
{"aaa","aa2","aa22"},{"bbb","bb2","bb22"},{"aaa","aa3","aa33"},
{"bbb","bb3","bb33"}};
Map
map = new HashMap
();
for (String[] strings : datas) {
DetailModel detail = new DetailModel();
detail.setPron(strings[0]);
List
li = new ArrayList
();
MeanPhrase mean = new MeanPhrase();
mean.setMean(strings[1]);
mean.setPhrase(strings[2]);
li.add(mean);
detail.setMpList(li);
//如果已存在相同的key,如aaa,则在key对应的对象的list中增加元素
if(map.containsKey(detail.getPron())){
map.get(detail.getPron()).getMpList().addAll(li);
}else{//否则直接新增
map.put(detail.getPron(), detail);
}
}
//将map转为list
List
resultList = new ArrayList
(map.values());
for (DetailModel detailModel : resultList) {
System.out.println(detailModel);
}
//输出map中的值以及分组结果记录数
System.out.println("======================================");
Set
keySet = map.keySet();
for (String string : keySet) {
System.out.println(string+":"+map.get(string).getPron()+":"+map.get(string).getMpList().size());
}
控制台输出结果:
DetailModel [pron=aaa, mpList=[MeanPhrase [mean=aa1, phrase=aa11], MeanPhrase [mean=aa2, phrase=aa22], MeanPhrase [mean=aa3, phrase=aa33]]]
DetailModel [pron=ccc, mpList=[MeanPhrase [mean=cc1, phrase=cc11]]]
DetailModel [pron=bbb, mpList=[MeanPhrase [mean=bb1, phrase=bb11], MeanPhrase [mean=bb2, phrase=bb22], MeanPhrase [mean=bb3, phrase=bb33]]]
======================================
aaa:aaa:3
ccc:ccc:1
bbb:bbb:3
注意:DetailModel [pron=ccc, mpList=[MeanPhrase [mean=cc1, phrase=cc11]]]输出这样的形式是因为我实体类重写了toString()方法的原因,你那不重写的话输出的应该只是对象地址。
public class test {
public static String[][] datas = {{"aaa", "aa1", "aa11"},
{"bbb", "bb1", "bb11"}, {"ccc", "cc1", "cc11"},
{"aaa", "aa2", "aa22"}, {"bbb", "bb2", "bb22"},
{"aaa", "aa3", "aa33"}, {"bbb", "bb3", "bb33"}};
public static List
mpList;
// pron = "aaa", mean="aa1", phrase="aa11"
public static class MeanPhrase {
public String pron, mean, phrase;
public MeanPhrase(String pron, String mean, String phrase) {
this.pron = pron;
this.mean = mean;
this.phrase = phrase;
}
}
public static void main(String[] args) {
for (int i = 0; i < datas.length; i++) {
MeanPhrase meanPhrase = new MeanPhrase(datas[i][0],datas[i][1],datas[i][2]);
mpList.add(meanPhrase);
}
}
}
没什么简便方法 遍历这个数组然后封装到DetailModel类里面,封装好一个就用list.add加一个
datas转String
1、下载个Google的gson包,
Gson gson = new Gson();
List
list = gson.fromJson(str, new TypeToken
<list
>(){}.getType());
2、下在json包
使用JSONObject.
</list
如何把list(map) 变成list(string)
JAVA8 flatmap
笨一点的方法
List
list = new ArrayList
();
for(循环list
java map中有3个key,对应value中的3个list,怎么取出对应的list
List list1 =(List) map.get(key1)
List list2 =(List) map.get(key2)
List list3 =(List) map.get(key3)
可能你的list是带类型,那你转成你相应的类型就可以了
比如:List
userList = (List
) map.get(key)
for(Object obj : map.keySet()){//循环取得key
System.out.println(obj + "对应的value:" + map.get(obj));
}
List list = (List) map.get("updateIndicatorIdList");
(List)map.get(key);
如:
List
list = (List
)map.get("key");
由于map.get();返回的是Object类型,这里需要强制转型。
数据类型>
数据类型>