cmp修饰TreeSet
private static TreeSet<String> sortset = new TreeSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2) ;
}
}) ;
TreeSet排序+迭代器
Set<String> ss = node.keySet() ;//keySet()获取一个key的集合
sortset.addAll(ss) ;//allAll()将所有key添加完成排序
Iterator<String> it = sortset.iterator() ;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.*;
public class Main {
private static TreeSet<String> sortset = new TreeSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2) ;
}
}) ;
public static void main(String[] args) throws IOException {
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))) ;
in.nextToken() ;
int T = (int)in.nval ;
for (int j = 0; j < T; j++) {
in.nextToken() ;
int M = (int)in.nval ;
HashMap<String, Node> map = new HashMap<String, Node>() ;
for (int i = 0; i < M; i++) {
in.nextToken() ;
String name = in.sval ;
in.nextToken() ;
String from = in.sval ;
in.nextToken() ;
int count = (int)in.nval ;
Node w = map.get(from) ;
if(w==null){
Node node = new Node() ;
node.Add(name,count) ;
map.put(from,node) ;
}else{
w.Add(name,count) ;
map.put(from,w) ;
}
}
Set<String> k = map.keySet() ;
sortset.addAll(k) ;
Iterator<String> it = sortset.iterator() ;
while(it.hasNext()){
String from2 = it.next() ;
System.out.println(from2) ;
Node newnode = map.get(from2) ;
newnode.print() ;
}
sortset.clear() ;
if(j!=T-1) System.out.println() ;
}
}
}
class Node{
private static TreeSet<String> sortset = new TreeSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2) ;
}
}) ;
HashMap<String,Integer> node ;
public Node(){
node = new HashMap<String,Integer>() ;
}
public void Add(String name,int number){
Integer n = node.get(name) ;
if(n==null){
node.put(name,number) ;
}else{
node.put(name,n+number) ;
}
}
public void print(){
Set<String> ss = node.keySet() ;
sortset.addAll(ss) ;
Iterator<String> it = sortset.iterator() ;
while(it.hasNext()){
String name = it.next() ;
Integer number = node.get(name) ;
System.out.println(" |----"+name+"("+number+")");
}
sortset.clear() ;
}
}