JAVA 如何获取存放在MAP中的list 对象?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 如何获取存放在MAP中的list 对象?相关的知识,希望对你有一定的参考价值。
List a = new ArrayList();
HashMap b =new HashMap();
b.put("a",a);
然后我想取得b中的a List付给c.
请问要怎样写, List c = b.get("a");???怎样转型了?????
List c = (List)b.get("a");
在JDK1.5以上提供了泛型,能够更好地控制类型,减少强行转型的次数。比如我们如果知道这些List里的元素永远是String的话,你就可以写
List<String> a = new ArrayList<String>;
HashMap<String,List<String>> b =new HashMap<String,List<String>>();
b.put("a",a);
...
List<String> c = b.get("a");
最后一步不需要强行转型,而且如果在b.put("a",a);这一步如果你想往b里面放一个不是List<String>的东西,或者使用的key不是一个String,编译器就会抗议。
泛型学起来有一定难度,尤其是一些高级用法,写起来有时会觉得繁琐,但是我认为物有所值,能够帮助我们在编译期发现不少潜在问题,写出代码更强健。 参考技术A 答案是:List c = (List)b.get("a");
你可以使用增强FOR循环来做 这样效率更高些。
比如将你的问题完善下:
//初始化数据
ArrayList<String> list = new ArrayList<String>();
list.add("test1");
HashMap<String,ArrayList<String>> map = new HashMap<String,ArrayList<String>>();
map.put("testMap",list);
//使用增强FOR循环输出结果
for(Map.Entry<String, ArrayList<String>> maps: map .entrySet())
//rtnList就是你想要得到的List
ArrayList rtnList = maps.getValue();
//rtnKey就是map的key
String rtnkey = maps.getKey();
参考技术B 汗!刚学java 没几天???
List c = (List)b.get("a");
如何利用EL表达式获取list,map,对象等值
<%@ page import="com.hopetesting.domain.User" %>
<%@ page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el表达式获取对象属性</title>
</head>
<body>
<h1>el设置对象是属性</h1>
<%
User user = new User();
user.setName("zmy");
user.setAge(11);
user.setBirthday(new Date());
request.setAttribute("user", user);
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add(user);
request.setAttribute("list",list);
Map map = new HashMap();
map.put("sname","light");
map.put("gender","male");
map.put("user",user);
request.setAttribute("map",map);
%>
<h1>el获取对象属性</h1>
${requestScope.user}<br/>
${requestScope.user.name}<br/>
${user.age}<br/>
${user.birStr}
<h1>el获取list值</h1>
${list[0]}<br/>
${list[1]}<br/>
${list[10]}<br/>
${list[2].name}<br/>
<h1>el获取Map值</h1>
${map.sname}<br/>
${map.gender}<br/>
${map.user.birStr}<br/>
</body>
</html>
package com.hopetesting.domain;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author newcityman
* @date 2019/9/6 - 21:00
*/
public class User {
private String name;
private Integer age;
private Date birthday;
public User() {
}
public User(String name, Integer age, Date birthday) {
this.name = name;
this.age = age;
this.birthday = birthday;
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
public Date getBirthday() {
return birthday;
}
public String getBirStr(){
if(birthday!=null){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(birthday);
}else{
return "";
}
}
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "User{" +
"name=‘" + name + ‘‘‘ +
", age=" + age +
", birthday=" + birthday +
‘}‘;
}
}
以上是关于JAVA 如何获取存放在MAP中的list 对象?的主要内容,如果未能解决你的问题,请参考以下文章
结果集存放在 List<Map<String,Object>>中怎么使用Java代码遍历获取String,Object的值?