`
noknower
  • 浏览: 120464 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过JAVA集合求和

    博客分类:
  • JAVA
阅读更多
需求:
从数据库取出表的List对象,通过判断List<bean>的主键判断该List是否有相同的属性值,如果有相同属性值,其他的数值叠加。做了个demo。

bean:
package com.bean;

public class bean {
	private String type;
	private Integer num;
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public Integer getNum() {
		return num;
	}
	public void setNum(Integer num) {
		this.num = num;
	}
	
}


实现类:
package com.main;

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

import com.bean.bean;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		List<bean> list = new ArrayList<bean>();

		bean demobean6 = new bean();
		demobean6.setType("type3");
		demobean6.setNum(10);

		list.add(demobean6);

		bean demobean = new bean();
		demobean.setType("type1");
		demobean.setNum(2);

		list.add(demobean);

		bean demobean5 = new bean();
		demobean5.setType("type3");
		demobean5.setNum(10);

		list.add(demobean5);

		bean demobean2 = new bean();
		demobean2.setType("type1");
		demobean2.setNum(30);

		list.add(demobean2);

		bean demobean3 = new bean();
		demobean3.setType("type1");
		demobean3.setNum(10);

		list.add(demobean3);

		bean demobean4 = new bean();
		demobean4.setType("type2");
		demobean4.setNum(10);

		list.add(demobean4);

		bean demobean7 = new bean();
		demobean7.setType("type8");
		demobean7.setNum(1090);

		list.add(demobean7);

		/*
		 * 数据结构可以考虑用Map,因为Map相同key值只能有一个,当有相同key值对象put进来时,Map会擦写掉原对象. 实现类似group
		 * by的功能.
		 */
		Map<String, Integer> result = new HashMap<String, Integer>();

		sort: for (bean item : list) {
			if (result.get(item.getType()) == null) {
				result.put(item.getType(), item.getNum());// 如果没有此类型,则添加此类型的数值
				continue sort;
			}
			// 如果有此类型,则把此类型的数值修改为-->原来的数值+新数值,实现类似sum功能
			result.put(item.getType(), item.getNum()
					+ result.get(item.getType()));
		}

		for (String key : result.keySet()) {
			System.out.println(key + " : " + result.get(key));
		}

	}

}

分享到:
评论

相关推荐

    java 数组求和计算

    这里我们将深入探讨如何在Java中进行数组求和计算,并讨论相关的一些扩展知识。 1. **数组的基本概念**: - 在Java中,数组是一个对象,它包含固定数量的元素,这些元素可以是任何基本类型(如int,double,char)...

    java集合求和最大值最小值示例分享

    Java 集合求和最大值最小值示例分享 Java 集合求和最大值最小值示例分享是 Java 编程语言中一种常用的数据处理方法。该示例主要介绍了如何使用 Java 集合框架来计算集合中的最大值、最小值和求和。 Java 集合框架 ...

    java8 stream自定义分组求和并排序的实现

    Java8 Stream 的主要特点是可以对集合进行流式处理,通过使用 Lambda 表达式和方法引用,可以轻松地实现复杂的数据处理操作。在本文中,我们将通过示例代码介绍如何使用 Java8 Stream 实现自定义分组求和并排序。 ...

    java8实现list集合中按照某一个值相加求和,平均值等操作代码

    本文将深入探讨如何使用Java 8的新特性,如流(Stream)和函数式编程,来实现按特定值相加求和、计算平均值等操作。 首先,让我们看一个简单的例子,假设我们有一个User类,其中包含一个表示年龄的整数字段`age`: `...

    java8 利用reduce实现将列表中的多个元素的属性求和并返回操作

    在 Java8 中,我们还可以使用 Stream 的其他方法来实现列表元素的属性求和操作,例如使用 collect 方法来将列表中的元素收集到一个新的集合中,然后使用 Stream 的 sum 方法来求和。 例如,我们可以使用以下代码来...

    Java lambda 循环累加求和代码

    Java Lambda 循环累加求和代码是 Java 8 中引入的 Stream API 中的一种重要特性,主要用于对集合中的元素进行累加运算。本文将详细介绍 Java Lambda 循环累加求和代码的实现方法和优点,以及 Java 中其他循环方式的...

    MongoDB之Java使用例子

    首先,Java与MongoDB的交互主要通过MongoDB的Java驱动程序实现。要开始使用,你需要在项目中引入MongoDB Java驱动的依赖,通常是通过Maven或Gradle。例如,在Maven的`pom.xml`文件中添加以下依赖: ```xml ...

    JAVA 高级编程第三章 集合框架

    Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储和操作提供了丰富的类库。这个框架使得开发者能够高效地处理各种数据结构,如列表、队列、映射等,而无需关注底层实现的复杂性。在"JAVA 高级编程...

    求和、行李、红绿灯问题java代码

    在Java中,这可能涉及到数据结构的选择,如数组、链表、栈、队列或集合。如果行李代表物品,我们可能会使用ArrayList或LinkedList来存储行李,然后根据特定条件(如重量、体积等)进行操作。例如,用ArrayList实现...

    java8并行计算示例

    本示例通过利用Java 8的并行流(Parallel Stream)特性,显著提升了计算效率,具体体现在对1到400亿数列求和的问题上。传统顺序计算方法耗时约13秒,而采用并行计算则将时间缩短至3秒左右,效率提升近4倍。 并行...

    java程序设计实用教程(第3版)习题解答

    9. **Java集合框架的高级主题**:包括泛型、迭代器、枚举、并发容器(如ConcurrentHashMap)等,这些都是提升代码质量和效率的关键。 10. **Java SE和Java EE的区别**:Java Standard Edition (SE)是基础平台,适用...

    java处理日期合并

    本文将通过一个具体的Java代码示例来介绍如何实现日期的合并功能。 #### 二、关键类与方法解析 本案例中涉及的主要类包括`TimeoffDateDTO`和`TimeoffDateComparator`。 ##### 2.1 `TimeoffDateDTO` 类 该类定义...

    《Java基础入门(第3版)》(Java):课后答案-docx文档

    此外,理解Java的核心概念,如类、对象、继承和多态,以及掌握常用的Java库(如集合、I/O流和多线程)和框架,对于成为一名熟练的Java开发者至关重要。 总的来说,这份课后答案文档涵盖了Java入门的各个方面,通过...

    2018省赛第九届蓝桥杯真题Java语言B组

    重复的描述可能暗示了比赛的重视程度和难度,意味着选手需要对Java语言有深入且全面的掌握,包括但不限于类与对象、异常处理、集合框架、多线程、I/O流、网络编程以及面向对象的设计原则等。 【标签】“蓝桥杯”是...

    Java8 stream 中利用 groupingBy 进行多字段分组求和案例

    在Java 8中,Stream API引入了许多新的特性,极大地增强了处理集合数据的能力。其中,`groupingBy`方法就是其中一个非常实用的功能,它允许我们根据指定的条件对集合中的元素进行分组。在这个案例中,我们将探讨如何...

    完整版精品java课件 Java基础入门教程 Java程序设计 第6章 数组和集合(共44页).ppt

    本教程将深入探讨Java中的数组和集合,这是学习Java编程的基础。 6.1 数组 数组是存储相同类型数据的集合,其长度在声明时固定不变。在Java中,数组被实现为对象,这意味着你可以对它们进行各种面向对象的操作。每...

    javaAPI学习总结

    Java集合框架是处理对象集合的重要工具,它包含各种接口和实现,如ArrayList、LinkedList、HashSet、HashMap等。以下是几个常见的集合类和接口: 1. **Vector类与Enumeration接口**: - Vector是古老的可变大小的...

    JAVA版BM25排序模型

    JAVA的集合框架、多线程、I/O流等特性可以方便地处理文档集合和索引。 7. **自然语言处理(NLP)**: 在构建BM25模型时,通常需要进行预处理步骤,如分词、去除停用词、词干提取等,这些都属于NLP的范畴。JAVA中有很...

    java8-集合元素归约.pdf

    Java 8 引入了 Stream API,极大地增强了对集合数据的操作能力。在处理集合时,有时我们需要将所有元素聚合到一个单一的值上,这就是所谓的“归约”操作。`Stream.reduce()` 方法就是用于实现这一功能的关键工具。在...

    JAVA API手册_语法大全

    `java.util`包提供了丰富的操作集合的工具类。 2. **输入/输出流**:`java.io`包提供了处理文件读写、网络通信的流类。例如FileInputStream/FOutputStream用于文件操作,Socket/ServerSocket用于网络通信。 3. **...

Global site tag (gtag.js) - Google Analytics