List<Map>的例子

本文介绍了一个Java方法用于构造特定的商品类别数据,并展示了如何通过页面脚本语言将这些数据进行展示。此外,还提供了一个获取订单详情的方法示例。

1.java类里面的一个方法:

public static List<Map> getKindinfo(int type){

List<Map> list=new ArrayList<Map>();
Map param1 = new HashMap();

param1.put("ID", "1");
param1.put("Name", "品牌名称");
param1.put("ParentID", "0");
list.add(param1);

Map param2 = new HashMap();
param2.put("ID", "2");
param2.put("Name", "品类名称");
param2.put("ParentID", "1");
list.add(param2);


Map param3 = new HashMap();
param3.put("ID", "3");
param3.put("Name", "货品大类");
param3.put("ParentID", "2");
list.add(param3);


Map param4 = new HashMap();
param4.put("ID", "4");
param4.put("Name", "货品中类");
param4.put("ParentID", "3");
list.add(param4);

Map param5 = new HashMap();
param5.put("ID", "5");
param5.put("Name", "子类名称");
param5.put("ParentID", "4");
list.add(param5);

List<Map> kindList=new ArrayList<Map>();

for (Map kind : list) {

System.out.println("ParentID"+kind.get("ParentID"));
if(kind.get("ParentID").equals(matCategory)){
System.out.println("equeal");
kindList.add(kind);
}
}
return kindList;
//List<Map> list=new ArrayList<ZyccOrderDetail>();

}


注意:java里面的等于用“.equals”,不要用==


二、前天页面的获取方法的:

List<Map> listKind1=BookOrderService.getKindinfo(1);


三、显示数据

品牌名称:<select>
<%for (Map m : listKind1) { %>
<option value =""><%=m.get("CardName") %></option>
<%}%> </select>



另外类的

1.类的方法

public static List<ZyccOrderDetail> getOrderDetailList(int type){
System.out.println("getOrderDetailList");
List<ZyccOrderDetail> list=new ArrayList<ZyccOrderDetail>();
String name="";
if(type==1)
name="前腿瘦肉300克";
if(type==2)
name="生态瘦肉300克";
if(type==3)
name="卡瘦肉300克";


for(int i=0;i<6;i++){
ZyccOrderDetail d = new ZyccOrderDetail();

d.setProductNo((i+type*10)+"");
d.setProductName(name);
d.setProductPrice(10.0);
d.setStockNum(i);

list.add(d);
}

return list;
}


2.前天获取方法的数据:

List<ZyccOrderDetail> list1=BookOrderService.getOrderDetailList(1);

3.数据的展现:

<%
int i=0;
for (ZyccOrderDetail d : list1) {
if(i%2==0)
{
out.println("</tr>");
out.println("<tr>");
}
String ck1Id="ck1"+i;
String lb1Id="lb1"+i;
String txt1Id="txt1"+i;
String lb1PriceId="lbPrice1"+i;
String pId="pNo1"+i;
i++;
%>

<td>
<INPUT type="checkbox" id="<%=ck1Id %>" name="ckType1" onclick="setCheck(1)">
</td>

<%} %>

### 什么是 `List<Map>`? 在 Java 编程中,`List<Map>` 是一种集合嵌套结构,表示一个列表(`List`),其中的每一个元素都是一个 `Map` 对象。具体来说,它是一个由多个键值对集合(`Map<K, V>`)组成的有序集合(`List<Map<K, V>>`)。这种结构在处理结构化数据(如数据库查询结果)时非常常见,例如从数据库中查询出多条记录,每条记录是一个键值对集合,其中键表示字段名,值表示字段值[^2]。 例如,一个 `List<Map<String, Object>>` 可以表示如下数据结构: ```java [ { "id": "1", "name": "深圳" }, { "id": "2", "name": "广州" } ] ``` 在这个例子中,整个结构是一个 `List`,包含两个元素,每个元素是一个 `Map<String, Object>`,分别表示一条记录的字段和值[^2]。 ### 使用场景 `List<Map>` 常用于以下场景: - **数据库查询结果的封装**:Hibernate 等 ORM 框架在执行原生 SQL 查询时,通常会返回 `List<Map>` 类型的结果集,其中每条记录作为一个 `Map` 存储字段名和字段值[^2]。 - **动态数据处理**:当数据结构不固定或字段不统一时,使用 `List<Map>` 可以灵活地表示和操作数据。 - **JSON 数据解析**:将 JSON 数组解析为 `List<Map>` 是一种常见做法,便于在 Java 中操作 JSON 数据。 ### 声明与初始化 在 Java 中,可以使用如下方式声明一个 `List<Map>`: ```java List<Map<String, Object>> listMap = new ArrayList<>(); ``` 每个 `Map` 可以存储任意键值对,例如: ```java Map<String, Object> map1 = new HashMap<>(); map1.put("id", "1"); map1.put("name", "深圳"); Map<String, Object> map2 = new HashMap<>(); map2.put("id", "2"); map2.put("name", "广州"); listMap.add(map1); listMap.add(map2); ``` ### 遍历与操作 可以使用增强型 for 循环对 `List<Map>` 进行遍历,并在遍历过程中修改每个 `Map` 的内容: ```java for (Map<String, Object> map : listMap) { // 遍历每个 Map System.out.println("原始数据: " + map); // 添加新字段 map.put("status", "active"); // 删除某个字段 map.remove("id"); } ``` 此外,也可以使用 Java 8 的 Stream API 对 `List<Map>` 进行转换操作,例如将其转换为字符串列表: ```java List<String> stringList = listMap.stream() .map(Map::toString) .collect(Collectors.toList()); ``` ### 与其他集合结构的对比 - **`Map<String, List<T>>`**:表示一个键值对集合,其中每个键对应一个列表,适用于分组数据的情况。例如,按地区分组的用户列表。 - **`List<List<T>>`**:表示一个二维列表结构,适用于矩阵或表格数据。 - **`Map<String, Map<K, V>>`**:表示嵌套的键值对结构,适用于多层级的映射关系。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值