Questions tagged «collections»

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

14
有内置的方法可以比较集合吗?
我想在我的Equals方法中比较几个集合的内容。我有一个词典和一个IList。有内置的方法可以做到这一点吗? 编辑:我想比较两个字典和两个IList,所以我认为相等的含义很清楚-如果两个字典包含映射到相同值的相同键,则它们相等。
178 c#  .net  collections 


22
如何计算列表中元素的出现次数
我有一个ArrayListJava的Collection类,如下所示: ArrayList<String> animals = new ArrayList<String>(); animals.add("bat"); animals.add("owl"); animals.add("bat"); animals.add("bat"); 如您所见,animals ArrayList包含3个bat元素和一个owl元素。我想知道Collection框架中是否有任何API返回出现次数,bat或者是否有另一种方法来确定出现次数。 我发现Google的Collection Multiset确实有一个API,该API返回一个元素出现的总数。但这仅与JDK 1.5兼容。我们的产品当前在JDK 1.6中,所以我不能使用它。

1
如何在不迭代的情况下从哈希映射中获取一个条目
Entry<K,V>如果密钥未知,是否有一种优雅的方法可以从HashMap中仅获取一个而不进行迭代。 由于进入的顺序并不重要,我们可以这样说吗 hashMapObject.get(zeroth_index); 尽管我知道不存在通过索引获取这种方法。 如果我尝试下面提到的方法,它仍然必须获取hashmap的所有条目集。 for(Map.Entry<String, String> entry : MapObj.entrySet()) { return entry; } 欢迎提出建议。 编辑:请提出任何其他数据结构以满足需求。
172 java  collections 

2
从IEnumerable <KeyValuePair <>>重新创建字典
我有一个返回的方法IEnumerable&lt;KeyValuePair&lt;string, ArrayList&gt;&gt;,但是某些调用者要求该方法的结果为字典。如何将转换IEnumerable&lt;KeyValuePair&lt;string, ArrayList&gt;&gt;为Dictionary&lt;string, ArrayList&gt;以便使用TryGetValue? 方法: public IEnumerable&lt;KeyValuePair&lt;string, ArrayList&gt;&gt; GetComponents() { // ... yield return new KeyValuePair&lt;string, ArrayList&gt;(t.Name, controlInformation); } 呼叫者: Dictionary&lt;string, ArrayList&gt; actual = target.GetComponents(); actual.ContainsKey("something");

6
将枚举转换为集合/列表
是否有一些单线桥接方法将给定的Enumeration转储到java.util.List或java.util.Set? 内置Arrays.asList()或类似的东西Collection.toArray()应该存在于某处,但我无法在IntelliJ调试器的评估器窗口(以及Google / SO结果)中找到。

7
不可变与不可修改的集合
从集合框架概述中: 类别不支持修改操作(如add,remove和clear)被称为不可修改的。不可修改的集合是可修改的。 额外保证Collection对象的任何变化都不可见的集合称为不可变的。不变的集合是可变的。 我不明白区别。这里不可修改和不可变 之间有什么区别?



9
数量vs长度vs尺寸
通过使用多种编程语言和库,我注意到用于集合中元素总数的各种术语。 最常见的似乎是length,count和size。 例如。 array.length vector.size() collection.count 有没有首选的用语?它取决于收集的类型吗?即。可变/不变 是否首选将其作为属性而不是方法?

13
如何在Java中将int []转换为Integer []?
我是Java新手,非常困惑。 我有一个长度为4的大型数据集,int[]我想计算4个整数的每个特定组合出现的次数。这与计算文档中的单词频率非常相似。 我想创建一个Map&lt;int[], double&gt;将每个int []映射到正在运行的计数的列表,但是列表不使用原始类型。 所以我做了 Map&lt;Integer[], Double&gt; 我的数据存储为一个,ArrayList&lt;int[]&gt;所以我的循环应该像 ArrayList&lt;int[]&gt; data = ... // load a dataset` Map&lt;Integer[], Double&gt; frequencies = new HashMap&lt;Integer[], Double&gt;(); for(int[] q : data) { // **DO SOMETHING TO convert q from int[] to Integer[] so I can put it in the map if(frequencies.containsKey(q)) { frequencies.put(q, …

2
为什么HashSet <Point>比HashSet <string>慢得多?
我想存储一些像素位置而不允许重复,所以首先想到的是HashSet&lt;Point&gt;或类似的类。但是,与之相比,这似乎很慢HashSet&lt;string&gt;。 例如,此代码: HashSet&lt;Point&gt; points = new HashSet&lt;Point&gt;(); using (Bitmap img = new Bitmap(1000, 1000)) { for (int x = 0; x &lt; img.Width; x++) { for (int y = 0; y &lt; img.Height; y++) { points.Add(new Point(x, y)); } } } 大约需要22.5秒。 尽管以下代码(出于明显的原因,这不是一个很好的选择)仅花费1.6秒: HashSet&lt;string&gt; points = new HashSet&lt;string&gt;(); using (Bitmap …

4
Java Collections Framework实现的Big-O摘要?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 3年前关闭。 改善这个问题 我可能很快就会教“ Java速成课程”。尽管可以很安全地假定听众成员将知道Big-O表示法,但是假设他们将知道各种集合实现上的各种操作的顺序可能是不安全的。 我可能会花一些时间自己生成一个摘要矩阵,但是如果它已经存在于公共领域中的某个地方,我肯定会重用它(当然要有适当的信誉)。 有人有指针吗?
164 java  collections  big-o 

12
断言Junit中的2个列表之间等于
在JUnit测试用例中,如何在列表之间进行相等性声明?列表内容之间应该平等。 例如: List&lt;String&gt; numbers = Arrays.asList("one", "two", "three"); List&lt;String&gt; numbers2 = Arrays.asList("one", "two", "three"); List&lt;String&gt; numbers3 = Arrays.asList("one", "two", "four"); // numbers should be equal to numbers2 //numbers should not be equal to numbers3

9
在.NET中创建阻塞Queue <T>?
我有一个场景,其中有多个线程添加到队列中,并且有多个线程从同一队列中读取。如果队列达到特定大小,则添加队列时将阻塞正在填充队列的所有线程,直到从队列中删除一项为止。 下面的解决方案是我现在正在使用的解决方案,我的问题是:如何改进?是否有一个对象已经在我应该使用的BCL中启用此行为? internal class BlockingCollection&lt;T&gt; : CollectionBase, IEnumerable { //todo: might be worth changing this into a proper QUEUE private AutoResetEvent _FullEvent = new AutoResetEvent(false); internal T this[int i] { get { return (T) List[i]; } } private int _MaxSize; internal int MaxSize { get { return _MaxSize; } set …

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.