Tag: hashset

HashSet’add’方法调用何时等于?

我在HashSet比较中做了这个测试,并且没有调用 equals 当farAway = false时,我想考虑等于(检查两个点距离的函数) 完全可编译的代码,你可以测试它,并告诉为什么在这个例子中没有调用equals。 public class TestClass{ static class Posicion { private int x; private int y; @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final Posicion other = (Posicion) obj; if ( farAway(this.x, other.x, this.y, other.y,5)){ return false; […]

带有番石榴集合的线程安全HashSet

就像标题所说,我想使用Guava Collections获得一个线程安全的HashSet。 你能帮助我吗? 谢谢!

Java所有确定元素在列表中是相同的

我试图确定列表中的所有元素是否相同。 如: (10,10,10,10,10) –> true (10,10,20,30,30) –> false 我知道hashset可能会有所帮助,但我不知道如何用java编写。 这是我尝试过的,但没有用: public static boolean allElementsTheSame(List templist) { boolean flag = true; String first = templist.get(0); for (int i = 1; i< templist.size() && flag; i++) { if(templist.get(i) != first) flag = false; } return true; }

收集removeAll无视案例?

好的,这是我的问题。 我必须使用HashSet ,我使用removeAll方法删除一个集合中存在的值。 在调用方法之前,我显然将值添加到Set 。 我在添加之前在每个String上调用.toUpperCase() ,因为两个列表中的值都是不同的情况。 这个案子没有押韵或理由。 一旦我调用removeAll ,我需要将原始案例返回给Set中剩下的值。 有没有一种有效的方法可以在不运行原始列表和使用CompareToIgnoreCase情况下执行此操作? 例: 列表1: “BOB” “Joe” “john” “MARK” “dave” “Bill” 列表2: “JOE” “MARK” “DAVE” 在此之后,使用String的toUpperCase()为每个List创建一个单独的HashSet 。 然后调用removeAll 。 Set1.removeAll(set2); Set1: “BOB” “JOHN” “BILL” 我需要让列表再次看起来像这样: “BOB” “john” “Bill” 任何想法将不胜感激。 我知道它很差,应该有原始列表的标准,但这不是我要决定的。

HashSet与ArrayList包含性能

处理大量数据时,我经常发现自己在做以下事情: HashSet set = new HashSet (); //Adding elements to the set ArrayList list = new ArrayList (set); 类似于“转储”列表中集的内容。 我通常这样做,因为我添加的元素通常包含我想要删除的重复项,这似乎是一种删除它们的简单方法。 只考虑到这个目标(避免重复)我也可以写: ArrayList list = new ArrayList (); // Processing here if (! list.contains(element)) list.add(element); //More processing here 因此无需将该集“转储”到列表中。 但是,在插入每个元素之前我会做一个小的检查(我假设HashSet也这样做) 这两种可能性中的任何一种显然更有效吗?

我应该为一个非常大的数据集使用`HashSet`或`TreeSet`吗?

我需要在数据结构中存储2到1,500万个帐户(长度为15的String ),以便查找和检查唯一性。 最初我计划将它们存储在HashSet ,但是我怀疑由于哈希冲突导致查找的速度会很慢,并且最终会比TreeMap慢(使用二进制搜索)。 不需要对数据进行排序。 我正在使用Java 7.我有64G系统,48G专用于此应用程序。 这个问题不是HashSet和TreeSet性能测试的重复,因为该问题是关于向Set添加元素的性能,这个问题是关于检查现有Set的重复值的性能。

为什么将HashSet (0)初始化为零?

我喜欢HashSet ()并在使用默认构造函数初始化时急切地使用它: Set users = new HashSet(); 现在,我的自动bean创建器(JBoss工具)将其初始化为: Set users = new HashSet(0); 为什么零 ? API告诉我这是初始容量 ,但将其置于零的优势是什么? 这是建议吗?

HashSet加载因子

如果我使用初始容量为10且载荷因子为0.5的HashSet则每增加5个元素, HashSet将增加,或者首先HashSet增加10个元素,并且在15 at at 20 atc后增加。 容量会增加吗?

如何在java hashset中查找和返回对象

根据HashSet javadoc,HashSet.contains只返回一个布尔值。 如何在hashSet中“找到”对象并对其进行修改(它不是原始数据类型)? 我看到HashTable有一个get()方法,但我更喜欢使用该方法。

Java HashSet是否为只读的线程安全?

如果我在通过Collections.unmodifiableSet()运行它后有一个HashSet实例,它是否是线程安全的? 我问这个,因为Set文档声明它不是,但我只是执行读操作。