今天打开一个LinkedHashSet源码,发现了一些有趣的东西:publicclassLinkedHashSetextendsHashSetimplementsSet,Cloneable,java.io.Serializable{问题是:当HashSet已经是Set的时候,为什么还要“extendsHashSet”和“implementsSet”? 最佳答案 我问过JoshBloch,他告诉我这是一个错误。很久以前,他曾经认为它有一些值(value),但他后来“看到了光明”。显然JDK维护者认为这不值得以后退出。
今天打开一个LinkedHashSet源码,发现了一些有趣的东西:publicclassLinkedHashSetextendsHashSetimplementsSet,Cloneable,java.io.Serializable{问题是:当HashSet已经是Set的时候,为什么还要“extendsHashSet”和“implementsSet”? 最佳答案 我问过JoshBloch,他告诉我这是一个错误。很久以前,他曾经认为它有一些值(value),但他后来“看到了光明”。显然JDK维护者认为这不值得以后退出。
我有一个LinkedHashSet,即一个有序集合。我试图找到一个函数来返回集合的一个子集,即集合的前20个元素。我知道我可以通过创建一个新集合然后使用第一个集合的迭代进行填充来做到这一点,但我希望得到更简洁的东西。还查看了Google的Guava库,但看不到我想要的。 最佳答案 在Guava中:Setsubset=ImmutableSet.copyOf(Iterables.limit(set,20));请注意,Iterables.limit()是惰性计算的,因此只会创建一个额外的集合。
我有一个LinkedHashSet,即一个有序集合。我试图找到一个函数来返回集合的一个子集,即集合的前20个元素。我知道我可以通过创建一个新集合然后使用第一个集合的迭代进行填充来做到这一点,但我希望得到更简洁的东西。还查看了Google的Guava库,但看不到我想要的。 最佳答案 在Guava中:Setsubset=ImmutableSet.copyOf(Iterables.limit(set,20));请注意,Iterables.limit()是惰性计算的,因此只会创建一个额外的集合。
在我的应用程序中,我使用LinkhedHashSet而不是ArrayList来保存ItemCategory对象(具有name和id属性的POJO)现在我想在Spinned中加载这个LinkedHashSet,而不必事先将LinkedHashsSet转换为ArrayList。可能吗?这是我的代码publicstaticvoidloadSpinnerData(Contextcontext,ArrayListarray,Spinnerspinner){//CreatingadapterforspinnerArrayAdapterdataAdapter=newArrayAdapter(cont
什么是C#中的LinkedHashSet(Java)? 最佳答案 HashSet可以完成这项工作,因为它实际上等同于Java中的LinkedHashSet。HashSet由链表支持——尽管文档没有明确声明它保留顺序或由基于数组的链表支持。从thesourcecode可以看出实现是一个LinkedHashSet。与JavaLinkedHashSet一样,不允许重复。这和LinkedHashSet之间的一个区别是,如果你从集合中删除一些东西,它只会将元素标记为数组中的空闲元素,因此在remove()之后添加一个项目会在“追加”之前先填充
我想存储一个数字列表1,2,3,4-(让我们从List开始)我想确保数字是唯一的(好的,很好,Set)我想保证订单(好的...LinkedHashSet)我想从列表中获取最后一个元素..将最后一个数字插入到LinkedHashSet中的最简单方法是什么?好吗? 最佳答案 没有为此预烘焙的选项。有两种现成的选择,但都不好:Ordern方法:publicEgetLast(Collectionc){Elast=null;for(Ee:c)last=e;returnlast;}呸!但还有一种Order1方法:classCachedLinke
我想知道是否可以对LinkedHashSet进行排序。我试过声明Collections.sort((Listparagraph);但是,这只会抛出一个错误,即无法将其转换为列表。有没有办法做到这一点,或者我应该使用另一种数据结构? 最佳答案 您应该使用SortedSet,例如TreeSet或ConcurrentSkipListSet如果您关心基于比较的排序(例如排序顺序)。LinkedHashSet根据插入顺序保留顺序。如果你真的想使用Collections.sort你可以通过实际构造一个List将LHS转换成一个List(虽然问题
如何遍历LinkedHashSet从最后一项到第一项? 最佳答案 如果您想继续使用集合,可以使用以下方法:LinkedHashSetset=...LinkedListlist=newLinkedList(set);Iteratoritr=list.descendingIterator();while(itr.hasNext()){Titem=itr.next();//dosomething}如果您可以使用数组代替,您可以查看hvgotcodes'answer. 关于JavaLinkedH
有可能吗?说你有privateSetnames=newLinkedHashSet();和Strings是“Mike”、“John”、“Karen”。是否有可能在不迭代的情况下得到“1”来返回“John”的索引是多少?以下工作正常..这个问题我想知道是否有更好的方法for(Strings:names){++i;if(s.equals(someRandomInputString)){break;}} 最佳答案 Setinterface没有像indexOf()方法这样的东西。您确实需要对其进行迭代或使用Listinterface而是提