需求:
从数据库取出表的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中进行数组求和计算,并讨论相关的一些扩展知识。 1. **数组的基本概念**: - 在Java中,数组是一个对象,它包含固定数量的元素,这些元素可以是任何基本类型(如int,double,char)...
Java 集合求和最大值最小值示例分享 Java 集合求和最大值最小值示例分享是 Java 编程语言中一种常用的数据处理方法。该示例主要介绍了如何使用 Java 集合框架来计算集合中的最大值、最小值和求和。 Java 集合框架 ...
Java8 Stream 的主要特点是可以对集合进行流式处理,通过使用 Lambda 表达式和方法引用,可以轻松地实现复杂的数据处理操作。在本文中,我们将通过示例代码介绍如何使用 Java8 Stream 实现自定义分组求和并排序。 ...
本文将深入探讨如何使用Java 8的新特性,如流(Stream)和函数式编程,来实现按特定值相加求和、计算平均值等操作。 首先,让我们看一个简单的例子,假设我们有一个User类,其中包含一个表示年龄的整数字段`age`: `...
在 Java8 中,我们还可以使用 Stream 的其他方法来实现列表元素的属性求和操作,例如使用 collect 方法来将列表中的元素收集到一个新的集合中,然后使用 Stream 的 sum 方法来求和。 例如,我们可以使用以下代码来...
Java Lambda 循环累加求和代码是 Java 8 中引入的 Stream API 中的一种重要特性,主要用于对集合中的元素进行累加运算。本文将详细介绍 Java Lambda 循环累加求和代码的实现方法和优点,以及 Java 中其他循环方式的...
首先,Java与MongoDB的交互主要通过MongoDB的Java驱动程序实现。要开始使用,你需要在项目中引入MongoDB Java驱动的依赖,通常是通过Maven或Gradle。例如,在Maven的`pom.xml`文件中添加以下依赖: ```xml ...
Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储和操作提供了丰富的类库。这个框架使得开发者能够高效地处理各种数据结构,如列表、队列、映射等,而无需关注底层实现的复杂性。在"JAVA 高级编程...
在Java中,这可能涉及到数据结构的选择,如数组、链表、栈、队列或集合。如果行李代表物品,我们可能会使用ArrayList或LinkedList来存储行李,然后根据特定条件(如重量、体积等)进行操作。例如,用ArrayList实现...
本示例通过利用Java 8的并行流(Parallel Stream)特性,显著提升了计算效率,具体体现在对1到400亿数列求和的问题上。传统顺序计算方法耗时约13秒,而采用并行计算则将时间缩短至3秒左右,效率提升近4倍。 并行...
9. **Java集合框架的高级主题**:包括泛型、迭代器、枚举、并发容器(如ConcurrentHashMap)等,这些都是提升代码质量和效率的关键。 10. **Java SE和Java EE的区别**:Java Standard Edition (SE)是基础平台,适用...
本文将通过一个具体的Java代码示例来介绍如何实现日期的合并功能。 #### 二、关键类与方法解析 本案例中涉及的主要类包括`TimeoffDateDTO`和`TimeoffDateComparator`。 ##### 2.1 `TimeoffDateDTO` 类 该类定义...
此外,理解Java的核心概念,如类、对象、继承和多态,以及掌握常用的Java库(如集合、I/O流和多线程)和框架,对于成为一名熟练的Java开发者至关重要。 总的来说,这份课后答案文档涵盖了Java入门的各个方面,通过...
重复的描述可能暗示了比赛的重视程度和难度,意味着选手需要对Java语言有深入且全面的掌握,包括但不限于类与对象、异常处理、集合框架、多线程、I/O流、网络编程以及面向对象的设计原则等。 【标签】“蓝桥杯”是...
在Java 8中,Stream API引入了许多新的特性,极大地增强了处理集合数据的能力。其中,`groupingBy`方法就是其中一个非常实用的功能,它允许我们根据指定的条件对集合中的元素进行分组。在这个案例中,我们将探讨如何...
本教程将深入探讨Java中的数组和集合,这是学习Java编程的基础。 6.1 数组 数组是存储相同类型数据的集合,其长度在声明时固定不变。在Java中,数组被实现为对象,这意味着你可以对它们进行各种面向对象的操作。每...
Java集合框架是处理对象集合的重要工具,它包含各种接口和实现,如ArrayList、LinkedList、HashSet、HashMap等。以下是几个常见的集合类和接口: 1. **Vector类与Enumeration接口**: - Vector是古老的可变大小的...
JAVA的集合框架、多线程、I/O流等特性可以方便地处理文档集合和索引。 7. **自然语言处理(NLP)**: 在构建BM25模型时,通常需要进行预处理步骤,如分词、去除停用词、词干提取等,这些都属于NLP的范畴。JAVA中有很...
Java 8 引入了 Stream API,极大地增强了对集合数据的操作能力。在处理集合时,有时我们需要将所有元素聚合到一个单一的值上,这就是所谓的“归约”操作。`Stream.reduce()` 方法就是用于实现这一功能的关键工具。在...
`java.util`包提供了丰富的操作集合的工具类。 2. **输入/输出流**:`java.io`包提供了处理文件读写、网络通信的流类。例如FileInputStream/FOutputStream用于文件操作,Socket/ServerSocket用于网络通信。 3. **...