有一堆数据,比如说
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课程设计 院 系: 计算机科学与技术学院 班 级: 09计本 组 员: 组 员: 组 员: 组 员: 指导教师: 一、个人通讯录管理系统概述 1、需求分析 通讯录在当今...
Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非...
Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称...
随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个数组被分为一组,算法便终止。希尔排序的时间复杂度与增量序列的选取有关,当增量序列选择合理时,希尔排序的时间效率会显著提高。其优点在于相比...
用户可以删除好友,但是 用户只可以将好友放在一个组中。 (4)即时通讯。即时通讯模块用户可以与在线的好友进行聊天,用户首先查看好友 是否在线,如果在线即可进行即时通讯,并且用户可以查看与好友的所有聊天记录...
另一类算法是对明文的一组位进行运算(即运算之前将明文分为若干组,然后分别对每一组进行运算,这些位组称为分组),相应的算法称为分组算法或分组密码。 AES 加密 RSA 加密 AES + RSA => 数据加密方案 RSA 等非...
java7在并发编程方面,带来了很多令人激动的新功能,这将使你的应用程序具备更好的并行任务性能。 《Java 7并发编程实战手册》是Java 7并发编程的实战指南,介绍了Java 7并发API中大部分重要而有用的机制。全书分为9...
该案例采用目前最流行、最规范的java ee架构,整个应用分为jpa实体层、eao层、业务逻辑层、mvc层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了ide无关的、基于ant管理的项目源码...
《Java开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第II卷,以开发...
select:从一个或多个表中检索一个或多个数据列。包含信息:想选择什么表,从什么地方选择。必须要有From子句。(最常用) 当从多张表里查询的时候,会产生笛卡尔积;可用条件过滤它。 当两个表有相同字段时必须加...
角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。 系统预定义角色 预定义角色是在数据库安装后,系统自动创建的一些常用的角色。下面我们就简单介绍些系统角色: CONNECT...
此次实训是分为3个人一组来进行对C语言数据结构的学习与巩固,与之前的实训方式有所不同,对每个人的能力来完成相应的编码,实现分组完成一个完整的功能实现。无论是在学习知识,还是在解决问题的能力上都有了深刻的...
捷方式了,它还实施了一条规约,那就是一个字符串各个分离的部分包含的是完全相同的字符.例如:下面的正则表达式匹配的就是位于单引号或双引号之内的所有字 符.但是,它要求开始和结束的引号匹配(例如两个都是双引号...
19.视图是一个表示表的数据的数据库对象,它允许用户从一个表或一组表中通过一定的查询语句建立一个“虚表”。 20.序列是一种可被多个用户使用的用于产生一系列唯一数字的数据库对象。尤其适合多用户环境中,可以...
3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出 4,FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出 下面是一个FreeMarker模板的例子,包含了以上所说的4个部分 <html><br> ...