Questions tagged «collections»

集合API为开发人员提供了一组类和接口,使处理对象集合更加容易。

9
我应该返回收藏集还是流?
假设我有一个将只读视图返回到成员列表的方法: class Team { private List < Player > players = new ArrayList < > (); // ... public List < Player > getPlayers() { return Collections.unmodifiableList(players); } } 进一步假设所有客户要做的就是立即遍历列表一次。也许将播放器放入JList之类。客户端就不能存储到列表的引用以便稍后进行检查! 在这种常见情况下,我应该返回流吗? public Stream < Player > getPlayers() { return players.stream(); } 还是在Java中返回流非惯用语?流是否设计为始终在创建它们的相同表达式内被“终止”?

19
比较两个集合是否相等,无论它们中的项顺序如何
我想比较两个集合(在C#中),但是我不确定有效实现这一点的最佳方法。 我已经阅读了有关Enumerable.SequenceEqual的其他主题,但这并不是我想要的。 在我的情况下,如果两个集合都包含相同的项(无论顺序如何),它们将相等。 例: collection1 = {1, 2, 3, 4}; collection2 = {2, 4, 1, 3}; collection1 == collection2; // true 我通常要做的是遍历一个集合的每个项目,看是否在另一个集合中,然后遍历另一个集合的每个项目,看它是否在第一个集合中。(我从比较长度开始)。 if (collection1.Count != collection2.Count) return false; // the collections are not equal foreach (Item item in collection1) { if (!collection2.Contains(item)) return false; // the collections are not equal …

8
Collection <T>与List <T>在界面上应使用什么?
代码如下所示: namespace Test { public interface IMyClass { List&lt;IMyClass&gt; GetList(); } public class MyClass : IMyClass { public List&lt;IMyClass&gt; GetList() { return new List&lt;IMyClass&gt;(); } } } 当我运行代码分析时,我得到以下建议。 警告3 CA1002:Microsoft.Design:将“ IMyClass.GetList()”中的“列表”更改为使用Collection,ReadOnlyCollection或KeyedCollection 我应该如何解决这个问题,这是什么好的做法?


5
如何在Java中使用全零初始化ArrayList?
似乎arraylist没有做好预定工作: // presizing ArrayList&lt;Integer&gt; list = new ArrayList&lt;Integer&gt;(60); 之后,当我尝试访问它时: list.get(5) 而不是返回0,而是抛出IndexOutOfBoundsException:索引5超出了长度0的范围。 有没有办法像C ++一样将所有元素初始化为精确大小的0?
161 java  collections 




22
如何检查IEnumerable是否为null或为空?
我喜欢string.IsNullOrEmpty方法。我很想拥有可以为IEnumerable提供相同功能的东西。有吗 也许一些收集助手类?我要问的原因是,if如果状态为,则语句中的代码看起来很混乱(mylist != null &amp;&amp; mylist.Any())。拥有它会更清洁Foo.IsAny(myList)。 这篇文章没有给出答案:IEnumerable是否为空?。


3
C#中的Java Map等效项
我正在尝试使用选择的键来保存集合中的项目列表。在Java中,我将仅使用Map,如下所示: class Test { Map&lt;Integer,String&gt; entities; public String getEntity(Integer code) { return this.entities.get(code); } } 在C#中有等效的方法吗? System.Collections.Generic.Hashset不使用哈希并且我不能定义自定义类型键 System.Collections.Hashtable不是泛型类 System.Collections.Generic.Dictionary没有get(Key)方法
150 c#  java  generics  collections 

4
从另一个列表ID对列表进行排序
我有一个带有一些标识符的列表,像这样: List&lt;long&gt; docIds = new List&lt;long&gt;() { 6, 1, 4, 7, 2 }; Morover,我还有另一个&lt;T&gt;项目列表,这些列表由上述ID表示。 List&lt;T&gt; docs = GetDocsFromDb(...) 我需要在两个集合中保持相同的顺序,以便其中的项List&lt;T&gt;必须与第一个集合处于相同的位置(由于搜索引擎评分的原因)。并且此过程无法在GetDocsFromDb()函数中完成。 如有必要,可以将第二个列表更改为其他结构(Dictionary&lt;long, T&gt;例如),但是我不希望更改它。 是否有任何简单有效的方法来使用LINQ进行“根据某些ID进行排序”?
150 c#  linq  sorting  collections 



9
Java Map为什么不扩展Collection?
事实Map&lt;?,?&gt;并非如此,这让我感到惊讶Collection&lt;?&gt;。 我认为,如果这样声明,那将是很有意义的: public interface Map&lt;K,V&gt; extends Collection&lt;Map.Entry&lt;K,V&gt;&gt; 毕竟,Map&lt;K,V&gt;是的集合Map.Entry&lt;K,V&gt;,不是吗? 那么,为什么没有这样一个充分的理由实现它呢? 感谢Cletus提供的最权威的答案,但是我仍然想知道为什么,如果您已经可以查看Map&lt;K,V&gt;as Set&lt;Map.Entries&lt;K,V&gt;&gt;(通过entrySet()),那么它不仅扩展了该接口。 如果a Map是a Collection,则元素是什么?唯一合理的答案是“键值对” 确实interface Map&lt;K,V&gt; extends Set&lt;Map.Entry&lt;K,V&gt;&gt;会很棒! 但这提供了非常有限的(且不是特别有用的)Map抽象。 但是,如果是这种情况,那么为什么要entrySet由接口指定?它必须以某种方式有用(我认为很容易为该职位辩护!)。 您既不能询问给定键所映射的值,也不能在不知道给定键所映射的值的情况下删除给定键的条目。 我并不是说这就是全部Map!它可以并且应该保留所有其他方法(除外entrySet,现在已经多余了!)!
146 java  oop  collections 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.