62,628
社区成员
发帖
与我相关
我的任务
分享
class Node{
private Integer first;
private Integer last;
public Node(Integer first, Integer last) {
this.first = first;
this.last = last;
}
public Integer getFirst() {
return first;
}
public void setFirst(Integer first) {
this.first = first;
}
public Integer getLast() {
return last;
}
public void setLast(Integer last) {
this.last = last;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Node)) {
return false;
}
Node node = (Node) o;
return Objects.equals(first, node.first) &&
Objects.equals(last, node.last);
}
@Override
public int hashCode() {
return Objects.hash(first, last);
}
}
public static void main(String[] args) {
Integer []arrs1 = new Integer[]{2,1,3,4,7,5,6};
Integer []arrs2 = new Integer[]{3,5,2,8,19,10};
Integer []arrs3 = new Integer[]{3,8,11,13};
List<Node> allNodes = new ArrayList<>();
allNodes.addAll(packageNode(arrs1));
allNodes.addAll(packageNode(arrs2));
allNodes.addAll(packageNode(arrs3));
System.out.println(allNodes);
Map<Node,Integer> result = new HashMap<>(allNodes.size());
for(Node node: allNodes){
if(result.get(node)!=null){
Integer count = result.get(node);
result.put(node,count+1);
}else{
result.put(node,1);
}
}
List<Map.Entry<Node,Integer>> entryArrayList = new ArrayList<>(result.entrySet());
Collections.sort(entryArrayList, (o1,o2)->{
Integer ov1 = o1.getValue();
Integer ov2 = o2.getValue();
return ov2.compareTo(ov1);
});
System.out.println(entryArrayList);
}
public static List<Node> packageNode(Integer[] arrs){
List<Node> nodes = new ArrayList<>();
for(int i=0;i<arrs.length-1;i++){
Integer first = arrs[i];
for(int j=i;j<arrs.length;j++){
if(j+1<arrs.length){
Integer last = arrs[j+1];
nodes.add(new Node(first,last));
}
}
}
return nodes;
}