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