自己对map的一点困惑

来源:5-4 复杂的穿针引线 Swap Nodes in Pairs

小慕0436321

2019-07-04

common common1=new common(3,0.2);
common common2=new common(3,0.2);
Map<common,Integer>map=new HashMap<>();
int i=0;
map.put(common1,i+1);
map.put(common2,i+1);
System.out.println(map.get(common2)
String str1=new String(“123”);
String str2=new String(“123”);
Map<String,Integer>map=new HashMap<>();
int i=0;
map.put(str1,i+1);
map.put(str2,i+2);
System.out.println(map.get(str2));
如果是我自己定义的类,打印出来为1,如果是String类用用同样的方式,然后就为2
,难道自定义的类就不能用在map<> 里面了,自定义的类,构造参数值都一样,可键值却不一样,而String 就完全和自定义不同,老师能解释下吗

写回答

1回答

liuyubobobo

2019-07-04

你的代码中:


map.put(common1,i+1);
map.put(common2,i+1);

因为i初始为0,最终common2对应 0 + 1 = 1


map.put(str1,i+1);
map.put(str2,i+2);

因为i初始为0,最终str2对应 0 + 2 = 2


继续加油!:)

0
3
liuyubobobo
回复
小慕0436321
对,精度不够。需要用整数表示斜率的分子分母。可以参考我的Leetcode题解代码仓相应的解题思路:https://github.com/liuyubobobo/Play-Leetcode/blob/master/0149-Max-Points-on-a-Line/cpp-0149/main2.cpp 加油!:)
2019-07-04
共3条回复

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程