首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-09-05 
java分组 -- 将相同的数据分为一组?有一堆数据,比如说1 2 3 1 2 4 ?3 2 12 45 3 2 3 5 ?4 6 5其中有一些相

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)?

热点排行