用于在保留唯一性的同时添加随机整数的Arraylist或hashmap

时间:2012-11-16 19:03:06

标签: java data-structures collections arraylist hashmap

给出一个arraylist和Hashmap。

我想在这个集合中添加随机整数。虽然添加必须检查是否      值已经输入或者没有。如果是,它应该返回true并且不应该添加到集合中,或者值应该是      添加。哪个集合首选?解释

现在,如果我们要添加到hashmap,那么如何将整数单独添加到hashmap或者这里的键值对是多么模糊?但这是受访者质疑的问题,需要给出一个答案

6 个答案:

答案 0 :(得分:1)

使用Set,它会处理唯一条目:

Set<Integer> set = new HashSet<Integer>();
//...
int randomNumber = ...
boolean unique = set.add(randomNumber);
if (unique) {
    System.out.println(randomNumber + " was added to set");
} else {
    System.out.println(randomNumber + " already was in set");
}

答案 1 :(得分:0)

您可以简单地使用ArrayList添加值,也可以在添加值之前监视这些值,例如:

List list = new ArrayList();

if (list.contains(whatever)) {
 System.out.println("do something"); 
} else {
   }

您也可以使用Hashmap执行相同的操作,但是根据需要,它取决于您要输入的键的问题

答案 2 :(得分:0)

您只需使用Collection#contains(...)

答案 3 :(得分:0)

对于这个特殊问题,我建议使用HashMap,因为它本身会检查重复值,而不必做任何事情。

如果使用了ArrayList,则需要检查'indexOf',如果之前添加了整数,则需要搜索整个数组。

此外,Hashmaps按键排序,这使搜索更有效。

答案 4 :(得分:0)

答案 5 :(得分:0)

如果在面试中给出这个问题,我会认为这是一个技巧问题...如果添加的项目顺序很重要,那么使用LinkedHashSet,否则使用HashSet ......