Tag: 集合

为什么LinkedHashSet <E>扩展HashSet <e>并实现Set <E>

今天打开LinkedHashSet源代码,发现一些有趣的事情: public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, java.io.Serializable { 问题是:为什么当HashSet已经是Set时,他们同时需要“extends HashSet”和“implements Set”?

List <T>是否保证项目将按照他们添加的顺序返回?

List<T>是否总是保证项目将按枚举时添加的顺序返回? 更新 :谢谢所有答案的人,让我放心。 我用.NET Reflector(应该可能已经做到了这一点),并且实际上底层存储是一个T ( T[] )的数组。

创build一个原始的int列表?

有没有一种方法来创build一个原始的int列表或Java中的任何原语像下面一样? List<int> myList = new ArrayList<int>(); 看来我可以做List myList = new ArrayList(); 并在此列表中添加“int”。 但是这意味着我可以添加任何东西到这个列表中。 是我唯一的select,创build一个int数组,并将其转换为列表或创build一个Integer对象列表?

HashSet,Vector,LinkedList的最大大小

什么是HashSet , Vector , LinkedList的最大大小? 我知道ArrayList可以存储超过3277000个数字。 但是列表的大小取决于内存(堆)的大小。 如果达到最大值,则JDK将引发OutOfMemoryError 。 但是我不知道HashSet , Vector和LinkedList中元素数量的限制。

Python中按键sorting的字典

我正在寻找一个有序的关联数组,即一个有序的字典的可靠实现。 我想按照键的顺序,而不是插入顺序。 更确切地说,我正在寻找一个int-to-float(或另一个用例的string到浮点数)映射结构的空间有效实现,其中: 有序迭代是O(n) 随机访问是O(1) 我想出的最好的方法是粘合一个字典和一个键列表,保持最后一个alignment并插入。 任何更好的想法?

std ::用户定义types设置,如何确保没有重复

所以我有一个std :: set需要保持特定的顺序,以及不允许用户定义(我)types的重复。 现在,我可以通过重载我的types中的'<'运算符来正确工作。 然而,这套设备并没有适当地检测到重复的内容,老实说,我不完全确定它是如何做到这一点的。 我已经重载了'=='运算符,但不知何故我不知道这是什么设置实际使用? 所以问题是当你添加值时,这个集合是如何确定重复的? 这是相关的代码: 用户定义的types: //! An element used in the route calculation. struct RouteElem { int shortestToHere; // Shortest distance from the start. int heuristic; // The heuristic estimate to the goal. Coordinate position; bool operator<( const RouteElem& other ) const { return (heuristic+shortestToHere) < (other.heuristic+other.shortestToHere); } bool operator==( const […]

Lambdaexpression式将数组/string列表转换为数组/列表整数

由于Java 8带有强大的lambdaexpression式, 我想写一个函数来转换一个列表/数组的string数组/列表整数,浮动,双打等。 在普通的Java中,它将如此简单 for(String str : strList){ intList.add(Integer.valueOf(str)); } 但是,如何给lambda赋予一个string数组,将其转换为一个整数数组,如何实现同样的效果。

有没有办法强制在NSArray,NSMutableArray等等上打字?

我可以做一个NSMutableArray的所有元素是SomeClasstypes?

如何检查IEnumerable是否为空或空?

我喜欢string.IsNullOrEmpty方法。 我很想有一些东西,将允许IEnumerable相同的function。 有这样的吗? 也许有一些收集帮手类? 我问的原因是, if语句的代码看起来很混乱,如果这个模式是(mylist != null && mylist.Any()) 。 有Foo.IsAny(myList)会更干净。 这篇文章没有给出答案: IEnumerable是空的? 。

为什么WCF像我期望的那样返回myObject 而不是List <T>?

我从我的WCF方法返回一个列表。 在我的客户端代码中,返回types显示为MyObject []。 我必须使用MyObject []或IList或IEnumerable … WCFClient myClient = new WCFClient(); MyObject[] list = myClient.GetMyStuff(); or IList<MyObject> list = myClient.GetMyStuff(); or IEnumerable<MyObject> list = myClient.GetMyStuff(); 我正在做的是把这个集合并绑定到一个网格。 什么是最好的对象分配我返回的集合?