`

java分组 -- 将相同的数据分为一组

    博客分类:
  • Java
 
阅读更多

 

有一堆数据,比如说

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) 

分享到:
评论
1 楼 516456267 2012-04-28  
有了一些启发

相关推荐

    java实现分组聚合

    在Java编程中,分组聚合是一项重要的数据处理技术,它允许我们按照特定的规则将数据组织成多个逻辑组,然后对这些组进行聚合操作,如计算每个组的总和、平均值等。这个主题通常与Java集合框架和流API紧密相关,特别...

    java 奇偶分组的资源

    在Java编程中,"奇偶分组"通常指的是对数据序列进行处理,按照元素的顺序将其分为两个子序列:一个包含所有奇数位置的元素,另一个包含所有偶数位置的元素。这种操作在数据处理、算法实现或者某些特定逻辑中可能会...

    Java开发关于正态分布的等距分组

    分组数目(即组数)是将数据集分为多少个小组。理论上,分组数目越多,数据的分布细节就越清晰,但是过多的分组可能导致无法观察到数据的总体趋势。而分组数目过少则可能导致数据的细节丢失,无法准确反映数据的分布...

    对iris数据进行分组分类

    在本例中,我们可能基于鸢尾花的四种特征对样本进行分组,比如花瓣长度小于某个值的鸢尾花一组,大于该值的另一组。通过这种方式,我们可以发现不同特征组合下的鸢尾花类别分布规律。 **分类**则是指将数据分配到预...

    sku多属性选择算法-每个商品的属性进行可选分组-有bug

    这里我们将详细讨论这个主题,特别是针对描述中提到的"每个商品的属性进行可选分组"以及与Vue.js相关的实现。 首先,理解商品属性的分组是非常关键的。在商品展示时,属性通常分为多个维度,如颜色、尺寸、内存等。...

    java大数据-教程.docx

    2. **聚类问题**:无预定义类别的情况下,通过相似性原则将数据分为群体。聚类常用于消费者数据分析,将用户按相似特征分组,以便实施定制化营销策略。 3. **回归问题**:寻找自变量与数值型因变量之间的关系,如...

    数据结构java版

    - 排序是按照一定的顺序排列一组数据的过程。 - 常见的排序方法包括插入排序、选择排序、快速排序等。 ##### 9.2 插入类排序 - **直接插入排序** - 直接插入排序是通过构建有序序列,对于未排序数据,在已排序序列...

    java数据结构与算法

    ### Java数据结构与算法 #### 一、Java与面向对象程序设计 在深入探讨数据结构与算法之前,首先需要理解Java编程语言的基础知识及其面向对象的特性。 **1.1 Java语言基础知识** - **基本数据类型及运算** - ...

    数据结构与算法-java版

    - **排序的基本概念**:排序是将一组数据按照一定的顺序排列的过程。 - **插入类排序** - **直接插入排序**:将待排序的数据一个一个插入已排序序列的适当位置。 - **折半插入排序**:改进直接插入排序,减少比较...

    数据结构与算法(JAVA语言版)-2.docx

    - **类与对象**:类是对一组具有相同属性和行为的对象的抽象描述,而对象则是这些类的具体实例。 - **继承**:子类可以继承父类的属性和方法,并且可以扩展新的功能。 - **接口**:定义了一组方法签名,用作不同...

    Java面试2024-7.5基础必备详情包含解答.docx

    - 接口是一种抽象类型,用于定义一组方法的签名。实现接口的类必须提供这些方法的具体实现。接口的作用在于: - 规范类的行为:接口定义了一个类应当提供的功能集。 - 支持多态性:一个类可以实现多个接口,从而...

    java笔记 java笔记

    - **类(Class)**:定义了一组属性和方法,用于描述一类事物的特征和行为。 - **对象(Object)**:类的实例,每个对象都具有特定的状态和行为。 - **方法(Method)**:函数在Java中的另一种说法,用来执行特定任务的一...

    基于java swing开发的桌面程序-学生信息管理系统,实现了增删改查

    4. **MVC设计模式**:这是一种常见的软件设计模式,将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型负责管理数据和业务逻辑,视图负责显示数据,控制器处理用户交互并协调...

    Java-master_排序_

    排序是指将一组数据按照特定的顺序进行排列,常见的排序标准有升序(从小到大)和降序(从大到小)。在计算机科学中,排序算法的性能通常用时间复杂度和空间复杂度来衡量,其中时间复杂度表示排序所需的基本操作次数...

    JAVA JDK8 List分组的实现和用法

    该方法将List中的元素分配到不同的组中,每个组的键是couponId的值,值是一个List,包含所有具有相同couponId的Coupon对象。 在分组后,可以根据实际需求对分组后的结果进行处理。例如,可以对每个组进行遍历,对每...

    JAVA简单分组的算法实现

    在Java编程中,分组算法通常用于将一组数据按照特定规则分成多个子集。这个简单的分组算法示例是将一个整数数组均匀地分成五组。以下是对该算法的详细解析: 首先,我们看到一个名为`Group`的类,其中包含一个`main...

    java名词速查表 java名词速查表

    - API是一组预定义的函数、类、数据结构等,它们为开发人员提供了与软件系统交互的方式。 - **作用**:简化开发过程,提供一致的编程接口。 #### Array (数组) - 数组是一种基本的数据结构,用于存储固定大小的同...

    完整版 Java开发实训课程系列-SpringMVC框架技术教程 第5章 数据校验 (共26页).pptx

    定义多个校验分组(即Java接口),每个分组代表一组校验规则。在需要的控制器方法中,通过指定分组类来选择执行特定的校验。 例如,创建一个名为ValidGroup1的接口,然后在POJO的校验规则上指定该分组。在控制器...

    带图形化界面的SHA-1的算法 JAVA

    - **消息分组**:将预处理后的消息分成512位的消息块,每块再进一步分为16个32位子块。 - **压缩函数**:对于每个消息块,通过多轮迭代应用特定的压缩函数,其中包含复杂的布尔运算和循环左移操作。 #### 5. 输出...

    计算机程序设计大赛-决赛-java-高职.doc

    考试时间长达6小时,试题分为三组,共计8道题目,分值和难度不同。参赛者需要根据自己的能力合理分配时间,确保程序能正确运行并得到预期结果,否则无法得分。 高分值题目(41分): 1. 人民币金额大写问题:这道...

Global site tag (gtag.js) - Google Analytics