/**
*
*/
package suntest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* @author zhang
*
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args)
{
List<User> users = new ArrayList<User>();
User user1 = new User();
user1.setName("grace");
user1.setFaMember("father");
user1.setFaMemberAge("50");
user1.setFaMemberWork("worker");
User user2 = new User();
user2.setName("grace");
user2.setFaMember("mother");
user2.setFaMemberAge("45");
user2.setFaMemberWork("worker");
User user3 = new User();
user3.setName("lily");
user3.setFaMember("mother");
user3.setFaMemberAge("60");
user3.setFaMemberWork("teacher");
User user4 = new User();
user4.setName("candy");
user4.setFaMember("father");
user4.setFaMemberAge("60");
user4.setFaMemberWork("housewife");
users.add(user1);
users.add(user2);
users.add(user3);
users.add(user4);
//分组开始
Map<String,List<User>> mapList = new HashMap<String,List<User>>();
Map<String,User> mapObject = new HashMap<String,User>();
//步骤1
for(Iterator it = users.iterator();it.hasNext();)
{
User user = (User)it.next();
if(mapList.containsKey(user.getName()))
{ //如果已经存在这个数组,就放在这里
List<User> userList = mapList.get(user.getName());
userList.add(user);
}else
{
List<User> userList2 = new ArrayList<User>();
//重新声明一个数组list
userList2.add(user);
mapList.put(user.getName(), userList2);
}
}
System.out.println(mapList);
//利用步骤2再次分组
//List<List<User>> list = new ArrayList<List<User>>();
for(Map.Entry<String, List<User>> m: mapList.entrySet())//按键值遍历 Map
{
//Map newMapList = new HashMap(); //
//String key = m.getKey();
List<User> userSingle = new ArrayList<User>();
userSingle = m.getValue();
System.out.println(userSingle);
//list.add(userSingle);
}
}
public static class User
{
private String name;
private String faMember;
private String faMemberAge;
private String faMemberWork;
public String getFaMember()
{
return faMember;
}
public void setFaMember(String faMember) {
this.faMember = faMember;
}
public String getFaMemberAge() {
return faMemberAge;
}
public void setFaMemberAge(String faMemberAge) {
this.faMemberAge = faMemberAge;
}
public String getFaMemberWork() {
return faMemberWork;
}
public void setFaMemberWork(String faMemberWork) {
this.faMemberWork = faMemberWork;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString()
{
StringBuffer str = new StringBuffer();
str.append(this.getName());
str.append(",");
str.append(this.getFaMember());
str.append(",");
str.append(this.getFaMemberAge());
str.append(",");
str.append(this.getFaMemberWork());
return str.toString();
}
}
}
今天有一网友问过我这样一个问题,他用 Map 来封装数据层返回的数据,想在 Jsp 页面通过 struts2 标签来显示 map 中的键值,说真的以前开发封装数据都是用 List ,从来没有用过 Map 来封装数据,最多是用来保存用户登录信息,以方便用来判断用户是否以登录, 但用 Map 来封装数据实在不是明智之举, 但我以前也从没这样子作过,所以在网上找了好久也没找到相关的信息, 后来一想struts2 可以直接用来显示action 中的属性值,所以就想出了以下方式解决了这个问题,具体代码如下: action
public String execute() throws Exception ...{
if(this.getUserName().equals("chen") && this.getPwd().equals("chen")) ...{
ActionContext.getContext().getSession().put("userName", this.getUserName());
User user = new User();
user.setName("a");
user.setCode("A");
map.put(1, user);
user = new User();
user.setName("b");
user.setCode("B");
map.put(2, user);
return SUCCESS;
}
return ERROR;
}以下是 jsp <%@taglib uri="/struts-tags" prefix="s"%>
<table>
<s:iterator value="map.keySet()" id="id">
<tr><td>
<s:property value="#id"/></td>
<s:iterator value="map.get(#id)">
<td><s:property value="name"/></td>
<td><s:property value="code"/></td>
</s:iterator>
</tr>
</s:iterator>
</table>
文章转载自网管网:http://www.bitscn.com/pdb/java/200806/143934.html
分享到:
相关推荐
Java中List对象的分页思想-按10个或者n个数对list进行分组 Java中List对象的分页思想是一种常用的数据处理技术,通过将一个大的List对象分割成多个小的List对象,每个小的List对象包含一定数量的元素,例如10个或n...
标题"**C# List集合分组WinForm把List分组**"涉及到的关键知识点是C#中的List集合以及如何利用Linq进行数据分组。在WinForm应用中,数据分组通常是为了更好地展示或操作数据,例如在控件如DataGridView中进行数据...
本问题中提到的情况就是如何根据对象的一个属性值对List中的对象进行分组,以便每个组包含具有相同属性值的对象。这种操作在处理集合数据时非常常见,例如在报表生成、数据分析或数据显示优化等场景。 首先,这个...
这个接口是Java 8中Stream API的`groupingBy`函数的一种扩展,允许我们对集合对象进行更复杂的分组操作。`GroupingBy`可以接受一个函数作为参数,这个函数定义了如何从每个元素中提取分组键,然后根据这些键将元素分...
这里的“Q703207 list如何实现动态分组”指的是如何使用编程语言(可能是Python或其他支持list操作的语言)对list中的元素进行动态的、基于某种规则的分组操作。在Python中,`groupby`函数通常是实现这一功能的关键...
拆分list,将list中的内容根据某一属性的值对list进行拆分,分组
`Collectors.groupingBy`方法允许我们将集合中的元素按照指定的键进行分组,创建一个Map,其中键是分组的标准,值是一个包含该组所有元素的列表。例如,如果我们有一个`Person`对象的列表,可以按年龄分组: ```...
C#中实现泛型List分组输出元素的方法是非常重要的操作之一。本文将详细介绍如何使用C#对泛型List进行分组输出元素的方法,涉及C#针对List的遍历、排序、输出等相关操作技巧。 首先,我们需要了解什么是泛型List。...
在上面的例子中,我们使用了Collectors.groupingBy方法将List中的Coupon对象按照其couponId属性分组。该方法将List中的元素分配到不同的组中,每个组的键是couponId的值,值是一个List,包含所有具有相同couponId的...
这个方法接收一个函数作为参数,该函数定义了如何从原始对象中提取分组键。例如,如果你有一个包含订单对象的列表,每个订单都有一个日期属性,你可以按照日期进行分组。 ```java List<Order> orders = ...; Map, ...
在 main 方法中,我们首先创建了一个List对象,然后使用Stream API对其进行分组。我们使用Collectors.groupingBy方法对List对象进行分组,按照Coupon的couponId字段进行分组。然后,我们使用Collectors....
在编程领域,特别是使用Python语言时,`List`对象是数据结构中非常基础且重要的部分。`List`对象可以容纳不同类型的数据,并提供了丰富的操作方法,包括排序。本篇将通过一个名为"List对象排序Demo"的主题,深入探讨...
当用户点击分组头时,我们需要更新Group对象的状态,并通知Adapter数据已改变,这样Adapter就会重新绘制视图。 ```java // 在ListView的OnItemClickListener中处理点击事件 listView.setOnItemClickListener(new ...
在上述代码中,`accumulator`函数负责将每个`Foo`对象添加到`Bar`对象中,而`combiner`函数则用于合并两个`Bar`对象,确保在并行处理时能够正确地组合结果。 最后,我们得到了一个新的Map,其中键是"name",值是...
在Java编程中,"按照每周分组"是一个常见的数据处理需求,特别是在数据分析、报表生成或者时间序列分析等场景。这个需求通常涉及到日期处理和集合分组。以下将详细讲解如何在Java中实现这一功能。 首先,我们需要...
在 Java 8 中,可以使用 Collectors.groupingBy() 方法将 List 中的对象元素分组。例如,可以使用以下代码将 Apple 对象的 List 按照 id 分组: ```java Map, List<Apple>> groupBy = appleList.stream().collect...
在C#编程中,数据分组是一个常见的任务,特别是在处理大量数据时,为了分析和理解数据,我们需要将数据按照特定的规则进行分类和汇总。本实例将深入探讨如何使用C#来实现数据分组统计。 首先,让我们了解C#中的数据...
关于PinnedSectionRefreshListView中注释显示英文问题,可以下载http://download.csdn.net/detail/qq_28690547/9310615这个链接,查看里面PinnedSectionListView中的中文注释.因为时间问题偷懒没有转换.有什么问题欢迎...
以家庭月度费用为例,可以在[Name, Area, Month]三个维度上随意组合进行分组,三个维度中选择一个做为列显示。 2. 动态Linq的使用 使用System.Linq.Dynamic动态LINQ库,可以实现行转列功能。首先,需要安装System....