什么问题/陷阱,必须重写时,必须考虑equals和hashCode?
我很想认为HashSet.contains(Object)方法在恒定时间内执行.它只是获取一个对象的哈希码,然后在哈希表中查找它.
首先,有人可以确认这是否属实?
第二,如果是真的,是否有任何冲突的风险,其中两个对象可能具有相同的哈希码,因此HashSet认为它只有两个对象时只有一个?
正如标题所说,我想知道ArrayList的contains()方法的时间复杂度是多少.
我有两个数组列表,例如
List<Date> a;
contains : 10/10/2014, 10/11/2016
List<Date> b;
contains : 10/10/2016
Run Code Online (Sandbox Code Playgroud)
如何在列表之间进行检查a,b以便b返回缺少的值?例如10/10/2014
在Java中,我有一个带有这些值的arraylist(很多行,这只是一个提取)
20/03/2013 23:31:46 6870 6810 6800 6720 6860 6670 6700 6650 6750 6830 34864 34272 20/03/2013 23:31:46 6910 6780 6800 6720 6860 6680 6620 6690 6760 6790 35072 34496
前两个值是包含数据并存储在单个元素中的字符串.
我想要做的是比较字符串数据元素和删除例如第二个和引用该行的所有元素.
现在,我使用了一个for循环,每13个元素比较字符串(为了只比较数据字符串)
我的问题:我能实施其他更好的解决方案吗?
这是我的代码:
20/03/2013 23:31:46 6870 6810 6800 6720 6860 6670 6700 6650 6750 6830 34864 34272
20/03/2013 23:31:46 6910 6780 6800 6720 6860 6680 6620 6690 6760 6790 35072 34496
Run Code Online (Sandbox Code Playgroud) java ×5
arraylist ×2
collections ×1
equals ×1
filtering ×1
hashcode ×1
list ×1
object ×1
overriding ×1