gpt4 book ai didi

java - 存储唯一整数的好方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:03 26 4
gpt4 key购买 nike

我的问题是:确定一个数字是否包含在 Collection 中的快速方法是什么?知道是否将其添加到集合中并保持唯一性。如果可以的话,我宁愿不遍历列表。

我有一个 List<Integer>称为 numberList .我希望它存储唯一的整数并且绝不允许添加重复项。我想做这样的事情:

private void add(int number) {
if (!numberList.contains(number)) {
numberList.add(number);
}
}

但显然这行不通,因为 numberList包含 Integer 的列表对象,因此无论数量如何,每个对象都是唯一的对象。

谢谢!

最佳答案

一种是将整数存储在 Set<Integer> 中例如 HashSet<Integer> .集合不允许重复。

编辑
此外,该系列的 contains(...)方法使用对象的 equals(...) 方法来查看它是否由集合持有,因此如果您需要使用 List 作为集合,您上面的方法也将防止重复。自己测试一下,您会发现确实如此。

例如:

  List<Integer> numberList = new ArrayList<Integer>();
int[] myInts = {1, 1, 2, 3, 3, 3, 3, 4};
for (int i : myInts) {
if (!numberList.contains(i)) {
numberList.add(i);
}
}

System.out.println(numberList);

将返回:[1, 2, 3, 4]

此外,HashSet 的一个可能问题是它们未排序,因此如果排序很重要,您将需要考虑使用其他类型的有序集合之一。

关于java - 存储唯一整数的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11286030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com