将int []与一次Integer进行比较

时间:2018-01-13 17:09:16

标签: java int compare

我有int[]的表格。我和每个用户都有循环,我做了:

int[] ids = (values) 
for (User user : listAfterProcessing) {
    if (user.getId().equals(ids)) { ... } 
}

他们没有工作,虽然用户ID在这个表中... 感谢您的帮助:)

2 个答案:

答案 0 :(得分:3)

您正在检查getId()的结果是否等于整个数组ids,默认情况下是与数组的哈希码的比较。

根据这个问题的答案:How to convert int[] into List<Integer> in Java?

  

没有快速的转换方式。

我在答案的第一个版本中提出的Arrays.asList()解决方案在这里没有用,抱歉。

答案 1 :(得分:0)

int数组与单个Integer进行比较无法获得所需的结果。您可以遍历整个数组并测试每个单元格的值,或者您可以保持数组排序并进行二进制搜索:

import java.util.Arrays;

Arrays.sort(ids);
if(Arrays.binarySearch(ids, user.getId().intValue()) >= 0) {}