1 5 apple shandong 3 pineapple guangdong 1 sugarcane guangdong 1 pineapple guangdong 3 pineapple guangdong 1
guangdong |----pineapple(5) |----sugarcane(1) shandong |----apple(3)
代码实现
import java.util.*; class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); while(n-->0){ int m=sc.nextInt(); Fruit[] f=new Fruit[m]; for(int i=0;i<m;i++){ f[i]=new Fruit(); f[i].name=sc.next(); f[i].place=sc.next(); f[i].numb=sc.nextInt(); } sort(f); /*System.out.println("-----------"); for(int i=0;i<m;i++){ System.out.println( f[i].name+" "+f[i].place+" "+f[i].numb); }System.out.println("------------");*/ String name=f[0].name; String place=f[0].place; int count=0; boolean flag=true; for(int i=0;i<m;i++){ if(place.compareTo(f[i].place)!=0){ place=f[i].place; name=f[i].name; count=0; flag=true; } if(place.compareTo(f[i].place)==0){ if(flag){ System.out.println(place); flag=false; } if(name.compareTo(f[i].name)==0){ while(i<m&&name.compareTo(f[i].name)==0&&place.compareTo(f[i].place)==0){ count+=f[i].numb; i++; } System.out.println(" |----"+name+"("+count+")"); if(i<m){ name=f[i].name; } i--; count=0; } } } if(n!=0){ System.out.println(); } } } public static void sort(Fruit[] f){//排序 for(int i=0;i<f.length-1;i++){ int minIndex=i; for(int j=i+1;j<f.length;j++){ if(f[minIndex].place.compareTo(f[j].place)>0){ minIndex=j; }else if(f[minIndex].place.compareTo(f[j].place)==0) if(f[minIndex].name.compareTo(f[j].name)>0){ minIndex=j; } } if(minIndex!=i){ Fruit temp=f[i]; f[i]=f[minIndex]; f[minIndex]=temp; } } } } class Fruit{//水果对象,类似于c中的结构体 int numb; String name,place; public Fruit(){ } }
原文:http://blog.csdn.net/u011479875/article/details/45099147