有一堆数据,比如说
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)