java中list集合的内容,如何使用像数据库中group by形式那样排序

java中list集合的内容,如何使用像数据库中group by形式那样排序,比如:有一个 List<JavaBean> 他中包含了一些如下的内容JavaBean:name    money(名称)  (金额)

来源A   100来源B   200来源C   300来源B   6600来源A   99800<数据1>

最后想实现的是:如果假设这些数据在数据库中,那么通过 select name,sum(money) from Table group by name 该语句得到的List<JavaBean>来源A  99900来源B  6800来源C  300<数据2>

简单的说就是让集合从 <数据1>的形式 变为 <数据2>的形式

请高手帮忙哦。谢谢了!

package cn.zhangao;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

public class ListGroup {

	public static void main(String[] args) {
		List<JavaBean> list = new ArrayList<JavaBean>();
		list.add(new JavaBean("来源A", 100));
		list.add(new JavaBean("来源B", 200));
		list.add(new JavaBean("来源C", 300));
		list.add(new JavaBean("来源B", 6600));
		list.add(new JavaBean("来源A", 99800));

		List<JavaBean> groupList = getListByGroup(list);
		for (JavaBean bean : groupList) {
			System.out.print(bean.getGroup() + "		");
			System.out.println(bean.getMoney());
		}
	}

	private static List<JavaBean> getListByGroup(List<JavaBean> list) {
		List<JavaBean> result = new ArrayList<JavaBean>();
		Map<String, Integer> map = new HashMap<String, Integer>();

		for (JavaBean bean : list) {
			if (map.containsKey(bean.getGroup())) {
				map.put(bean.getGroup(), map.get(bean.getGroup()) + bean.getMoney());
			} else {
				map.put(bean.getGroup(), bean.getMoney());
			}
		}
		for (Entry<String, Integer> entry : map.entrySet()) {
			result.add(new JavaBean(entry.getKey(), entry.getValue()));
		}
		return result;
	}
}

class JavaBean {
	private String group;
	private int money;

	public JavaBean() {
	}

	public JavaBean(String group, int money) {
		this.group = group;
		this.money = money;
	}

	public String getGroup() {
		return group;
	}

	public void setGroup(String group) {
		this.group = group;
	}

	public int getMoney() {
		return money;
	}

	public void setMoney(int money) {
		this.money = money;
	}

}
时间: 2024-08-01 20:40:36

java中list集合的内容,如何使用像数据库中group by形式那样排序的相关文章

集合差集 哈希表 比较数据库中的图片和服务器上的图片,将服务器上的垃圾图片删除

SSH 框架下code: public String deleRubbishAd(){ int deleADcount = 0; rubbishADtp = configDao.rubbishADtp(); //数据库中的广告图片集合 Map<Object,Object> shujuku= new HashMap<Object,Object>(); File adfile = new File("C://Program Files//Apache Software Fou

如何将一个数据库中的一个表复制到另一个数据库中的表中

如何将一个数据库中的一个表复制到另一个数据库中的表中 2013-09-11 17:13匿名 | 浏览 13763 次 如何将一个数据库中的一个表复制到另一个数据库中的表中两个表的列名不同.有知道的么?SQL语句直接导过去.! 2013-09-12 20:26网友采纳 热心网友 如果另一个库中没有同名的表select * into b数据库.dbo.a表 from a数据库.dbo.a表 where 条件 如果是追加到另一个表中inert into b数据库.dbo.a表select * from

Java基础系列12:使用CallableStatement接口调用数据库中的存储过程

前言:以下内容均以MySQL中的存储过程举例说明 一 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是

Java 读取txt文件后把数据保存到数据库中

需求:有一个很大的txt文件(1,000,000条数据),从txt中读取有用数据库后保存到Oracle数据库中 利用Java实现: 1.读取文件 2.数据库连接后插入到数据库 package com.test.IF.service; import java.io.File; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedS

当From窗体中数据变化时,使用代码获取数据库中的数据然后加入combobox中并且从数据库中取得最后的结果

private void FormLug_Load(object sender, EventArgs e) { FieldListLug.Clear();//字段清除 DI = double.Parse(tbDn.Text);//DI等于tbdn中的值 把值强制转化成DOUBLE型 string TypeName = "Y_SUPPORT_LUG_4712_3_2007_TYPE";//定义查询表名 string where = string.Format("DnX <

Kooboo中如何切换数据库(注意:如果切换数据库,需要Kooboo中没有一个website 否则会报错数据库中没有表之类的)

Setup database provider 来自Kooboo document Kooboo CMS can almost support all the types of database, include the relational database and No-SQL database. Right now, we have implemented five types database provider for text content: XML, SQLCe, SQLServe

五种方式让你在java中读取properties文件内容不再是难题

一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC+Mybatis整合开发的项目中通过java程序读取properties文件内容的方式进行了梳理和分析,先和大家共享. 二.项目环境介绍 Spring 4.2.6.RELEASE SpringMvc 4.2.6.RELEASE Mybatis 3.2.8 Maven 3.3.9 Jdk 1.7 Id

JAVA对数据库进行操作,实现数据库中数据的插入,查询,更改,删除操作

(—)通过mysql workbench 创建一个数据库,在这里命名为company,然后建一个tb_employee表 (二)以下是java代码对表tb_employee的操作 1 创建一个Employee类,包括员工的一些信息,如  id  name age sex 2创建DatabaseConnection类,用于数据库的连接 3创建一个EmployeeOperation类,用于操作数据库,它里面包括了 以下方法 (1)getInstance()   //返回EmployeeOperati

Mybatis_review之配置文件中的typeHandlers节点内容说明

Mybatis为什么要在configuration file中提供typeHandlers节点 因为java类型与数据库中保存的类型是有很大差异的,例如 在java中的类型为int,但是在数据库中可能为int也可能为number.因此建立数据库的类型映射是非常重要的.为了兼容多个数据库,以及考虑到未来数据库的发展,Mybatis采用了插入的方式来解决类型映射的问题. 我们可以在mybatis的文件夹org.apache.ibatis.type的下面看到很多中typeHandler.与其他的框架中