Tag: linkedhashset

LinkedHashSet .equals()vs LinkedList .equals()具有相同的元素但顺序不同

考虑以下SSCCE: public static void main(String[] args) { LinkedHashSet set1 = new LinkedHashSet(); set1.add(“Bob”); set1.add(“Tom”); set1.add(“Sam”); LinkedHashSet set2 = new LinkedHashSet(); set2.add(“Sam”); set2.add(“Bob”); set2.add(“Tom”); System.out.println(set1); System.out.println(set2); System.out.println(set1.equals(set2)); } 这打印: [Bob, Tom, Sam] [Sam, Bob, Tom] true 但是,如果将LinkedHashSet更改为LinkedList : public static void main(String[] args) { LinkedList set1 = new LinkedList(); set1.add(“Bob”); set1.add(“Tom”); set1.add(“Sam”); LinkedList set2 = new […]

Java LinkedHashSet向后迭代

如何迭代LinkedHashSet的项目从最后一项到第一项?

Hashset,Treeset和Linkedhashset,Hashmap之间的主要区别是什么?它在Java中是如何工作的?

我只是理解LinkedHashSet在插入时不允许重复元素。 但是,我不明白Hashset在java中是如何工作的? 我知道有一点Hashtable在Hashset中使用,所以哈希表用于存储元素,这里也不允许重复元素。 然后,Treeset也类似于Hashset,它也不允许重复条目,因此将看到唯一的元素,并且它遵循升序。 我对HashMap还有一个疑问 – Hashmap没有维护顺序。 它可能有一个空键和多个空值。 我只是不明白这一点,实际上是什么意思? 这有什么实际的例子吗? 我知道了一点,Hashmap曾经基于此工作 – 用于放入存储桶的密钥和值也有唯一的数字。 这样,就可以从桶中识别并获取密钥和价值。 当我将键/值对放在桶中时,其标识符是键的哈希码。 对于例如:密钥的哈希码是101,因此它存储在桶101中。一个桶可以存储多于密钥和值对。 假设一个例子,因为Object1是“A”,object2是“A”而object3是“B”,那么它具有相同的哈希码。 因此,它通过在同一个桶中共享相同的Hashcode来存储不同的对象。 我的疑问是,具有相同Hashcode的对象应该相等,不同的对象应该有不同的Hashcode? 我是初学者,请澄清我的疑虑并为这种愚蠢的怀疑道歉! 这是使用HashSet的程序, import java.util.*; public class Simple{ public static void main(String[] args){ HashSet hh=new HashSet(); hh.add(“D”); hh.add(“A”); hh.add(“B”); hh.add(“C”); hh.add(“a”); System.out.println(“Checking the size is:”+hh.size()+””); System.out.println(hh); Iterator i=hh.iterator(); while(i.hasNext()){ System.out.println(i.next()); } } } 输出是, Checking the size […]