[算法练习题]水果店-JAVA问题

本文分享了一个使用Java TreeMap解决复杂数据处理问题的实例,通过详细解析代码逻辑,展示了如何利用TreeMap进行高效的数据存储与检索,特别关注了字符串比较、数据累加及输出格式的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.util.Map.Entry;
import java.util.Scanner;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n;
String s1,s2;int s3;
int j=0;
n=sc.nextInt();
TreeMap<String,Integer> mp=new TreeMap<String,Integer>();
for(int i=0;i<n;i++){
s1=sc.next();s2=sc.next();s3=sc.nextInt();
if(mp.containsKey(s2+" “+s1)){
s3+=mp.get(s2+” “+s1);
mp.put(s2+” “+s1, s3); //因为是按产地排序
}else{ //经过多次失误
mp.put(s2+” “+s1, s3); //最后成功取对形式
}
}
int m=mp.size();
String ss[]=new String[m];
for(Entry<String, Integer> entry:mp.entrySet()){
ss[j++]=entry.getKey()+” “+entry.getValue();
}
String s4=”";
for(int i=0;i<m;i++){
if(ss[i].substring(0, ss[i].indexOf(" “)).compareTo(s4)!=0){
//易错点,这里两个String比较相等,一定不能用“==” 号
s4=ss[i].substring(0, ss[i].indexOf(” “));
System.out.println(s4);
}
System.out.println(”|----"+ss[i].substring(ss[i].indexOf(" “),ss[i].length()-2)+”("+ss[i].charAt(ss[i].length()-1)+")");
}
}
}
说实话,这道题 自己想了 昨天一个晚上没想明白,
现在做出来了。感觉很多小地方,自己考虑的真的不周全
比较别人的做法。最多给自己点感想,我觉得 我是那种
看不太懂别人代码的人,我是说 除了一些思想, 很多用到的
思想我都能看到,但里面的东西,还是自己做的比较舒服,虽然用的时间长一点,但收获还是挺大的。
我觉得这种算法练习题,思路不能一直固定,还是要多灵活一点。
多从题干找信息,想出可行思路再去写代码,多种形式,多想想。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值