15条回答
- lppzyt 2017-08-01 06:59关注
把String数组换成一个类吧,拥有两个String属性的类,经测试可以实现,希望对你有帮助。另外可以查看一下对equals和hashcode重写的写法
public class OverHashcode {
static Map wordsCount = new HashMap<>();
static List list = new ArrayList();public static void toMap() { for (LikeStringArray tempStr : list) { if (wordsCount.containsKey(tempStr)) { wordsCount.put(tempStr, wordsCount.get(tempStr) + 1); } else { wordsCount.put(tempStr, 1); } } for (Map.Entry<LikeStringArray, Integer> entry : wordsCount.entrySet()) System.out.printf("%s:%d\n", entry.getKey(), entry.getValue()); } public static void main(String[] args) { list.add(new LikeStringArray("i","do")); list.add(new LikeStringArray("i","do")); list.add(new LikeStringArray("i","will")); list.add(new LikeStringArray("i","will")); list.add(new LikeStringArray("i","will")); list.add(new LikeStringArray("i","am")); toMap(); }
}
class LikeStringArray{
String id;
String name;
LikeStringArray(String id,String name){
this.id= id;
this.name = name;
}
@Override
public int hashCode() {
//返回的hash值进行比较,若equals方法返回true则hashCode方法也应该返回true
return this.name.hashCode()+this.id.hashCode();
}
@Override
public boolean equals(Object obj) {
LikeStringArray other = (LikeStringArray) obj;
//id和name都相同就返回true即是内容上的比较
if(id.equals(other.id)&&name.equals(other.name)){
return true;
}
return super.equals(obj);
}
//输出时别忘了重写toString方法
public String toString() {return "<"+id+","+name+">"; }
}
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog