有一堆数据,比如说
1 2 3 1 2 4 3 2 12 45 3 2 3 5 4 6 5
其中有一些相同的数据,然后需要把相同的数据归纳为一组,独立的数据各自为一组。
算法:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
class Group {
private List<Integer> ins = new ArrayList<Integer>();
public List<Integer> getIns() {
return ins;
}
public void setIns(List<Integer> ins) {
this.ins = ins;
}
}
public class Match {
public void merge(List<Integer> hay) {
Map<Integer, Group> groups = new HashMap<Integer, Group>();
for (Integer key : hay) {
groups.put(key, new Group());
}
for (Integer each : hay) {
groups.get(each).getIns().add(each);
}
display(groups);
}
public void display(Map<Integer, Group> groups) {
for (Entry<Integer, Group> each : groups.entrySet()) {
System.err.println("++++++++++++++++++==");
for (Integer g : each.getValue().getIns()) {
System.err.println(g);
}
System.err.println("+++++++++++++++++++++");
}
}
public static void main(String[] args) {
List<Integer> hay = new ArrayList<Integer>();
hay.add(1);
hay.add(3);
hay.add(5);
hay.add(1);
hay.add(5);
hay.add(4);
hay.add(6);
hay.add(7);
hay.add(9);
hay.add(5);
hay.add(3);
Match m = new Match();
m.merge(hay);
}
}
(注:本文摘自网络,仅用于个人学习 http://www.oschina.net/question/124007_18552)
分享到:
相关推荐
在Java编程中,分组聚合是一项重要的数据处理技术,它允许我们按照特定的规则将数据组织成多个逻辑组,然后对这些组进行聚合操作,如计算每个组的总和、平均值等。这个主题通常与Java集合框架和流API紧密相关,特别...
在Java编程中,"奇偶分组"通常指的是对数据序列进行处理,按照元素的顺序将其分为两个子序列:一个包含所有奇数位置的元素,另一个包含所有偶数位置的元素。这种操作在数据处理、算法实现或者某些特定逻辑中可能会...
分组数目(即组数)是将数据集分为多少个小组。理论上,分组数目越多,数据的分布细节就越清晰,但是过多的分组可能导致无法观察到数据的总体趋势。而分组数目过少则可能导致数据的细节丢失,无法准确反映数据的分布...
在本例中,我们可能基于鸢尾花的四种特征对样本进行分组,比如花瓣长度小于某个值的鸢尾花一组,大于该值的另一组。通过这种方式,我们可以发现不同特征组合下的鸢尾花类别分布规律。 **分类**则是指将数据分配到预...
这里我们将详细讨论这个主题,特别是针对描述中提到的"每个商品的属性进行可选分组"以及与Vue.js相关的实现。 首先,理解商品属性的分组是非常关键的。在商品展示时,属性通常分为多个维度,如颜色、尺寸、内存等。...
2. **聚类问题**:无预定义类别的情况下,通过相似性原则将数据分为群体。聚类常用于消费者数据分析,将用户按相似特征分组,以便实施定制化营销策略。 3. **回归问题**:寻找自变量与数值型因变量之间的关系,如...
- 排序是按照一定的顺序排列一组数据的过程。 - 常见的排序方法包括插入排序、选择排序、快速排序等。 ##### 9.2 插入类排序 - **直接插入排序** - 直接插入排序是通过构建有序序列,对于未排序数据,在已排序序列...
### Java数据结构与算法 #### 一、Java与面向对象程序设计 在深入探讨数据结构与算法之前,首先需要理解Java编程语言的基础知识及其面向对象的特性。 **1.1 Java语言基础知识** - **基本数据类型及运算** - ...
- **排序的基本概念**:排序是将一组数据按照一定的顺序排列的过程。 - **插入类排序** - **直接插入排序**:将待排序的数据一个一个插入已排序序列的适当位置。 - **折半插入排序**:改进直接插入排序,减少比较...
- **类与对象**:类是对一组具有相同属性和行为的对象的抽象描述,而对象则是这些类的具体实例。 - **继承**:子类可以继承父类的属性和方法,并且可以扩展新的功能。 - **接口**:定义了一组方法签名,用作不同...
- 接口是一种抽象类型,用于定义一组方法的签名。实现接口的类必须提供这些方法的具体实现。接口的作用在于: - 规范类的行为:接口定义了一个类应当提供的功能集。 - 支持多态性:一个类可以实现多个接口,从而...
- **类(Class)**:定义了一组属性和方法,用于描述一类事物的特征和行为。 - **对象(Object)**:类的实例,每个对象都具有特定的状态和行为。 - **方法(Method)**:函数在Java中的另一种说法,用来执行特定任务的一...
4. **MVC设计模式**:这是一种常见的软件设计模式,将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型负责管理数据和业务逻辑,视图负责显示数据,控制器处理用户交互并协调...
排序是指将一组数据按照特定的顺序进行排列,常见的排序标准有升序(从小到大)和降序(从大到小)。在计算机科学中,排序算法的性能通常用时间复杂度和空间复杂度来衡量,其中时间复杂度表示排序所需的基本操作次数...
该方法将List中的元素分配到不同的组中,每个组的键是couponId的值,值是一个List,包含所有具有相同couponId的Coupon对象。 在分组后,可以根据实际需求对分组后的结果进行处理。例如,可以对每个组进行遍历,对每...
在Java编程中,分组算法通常用于将一组数据按照特定规则分成多个子集。这个简单的分组算法示例是将一个整数数组均匀地分成五组。以下是对该算法的详细解析: 首先,我们看到一个名为`Group`的类,其中包含一个`main...
- API是一组预定义的函数、类、数据结构等,它们为开发人员提供了与软件系统交互的方式。 - **作用**:简化开发过程,提供一致的编程接口。 #### Array (数组) - 数组是一种基本的数据结构,用于存储固定大小的同...
定义多个校验分组(即Java接口),每个分组代表一组校验规则。在需要的控制器方法中,通过指定分组类来选择执行特定的校验。 例如,创建一个名为ValidGroup1的接口,然后在POJO的校验规则上指定该分组。在控制器...
- **消息分组**:将预处理后的消息分成512位的消息块,每块再进一步分为16个32位子块。 - **压缩函数**:对于每个消息块,通过多轮迭代应用特定的压缩函数,其中包含复杂的布尔运算和循环左移操作。 #### 5. 输出...
考试时间长达6小时,试题分为三组,共计8道题目,分值和难度不同。参赛者需要根据自己的能力合理分配时间,确保程序能正确运行并得到预期结果,否则无法得分。 高分值题目(41分): 1. 人民币金额大写问题:这道...