Questions tagged «collections»

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


12
HashSet与列表性能
显然,泛型HashSet<T>类的搜索性能高于泛型List<T>类。只需将基于哈希的键与线性方法进行比较即可List<T>。 但是,计算哈希键本身可能会花费一些CPU周期,因此对于少量项,线性搜索可以真正替代HashSet<T>。 我的问题:收支平衡在哪里? 为了简化场景(公平地说),我们假定List<T>类使用元素的Equals()方法来标识项目。



29
用Java增加Map值的最有效方法
我希望这个问题对于本论坛来说不是太基本了,但是我们会看到的。我想知道如何重构一些代码以获得更好的性能,而这些性能已经运行了很多次。 假设我正在使用地图(可能是HashMap)创建一个单词频率列表,其中每个键是一个带有要计算单词的String,值是一个Integer,每次找到该单词的标记时都会增加。 在Perl中,增加这样的值非常容易: $map{$word}++; 但是在Java中,它要复杂得多。这是我目前的操作方式: int count = map.containsKey(word) ? map.get(word) : 0; map.put(word, count + 1); 当然,哪个依赖于较新的Java版本中的自动装箱功能。我想知道您是否可以建议一种更有效的递增此值的方法。避开Collections框架并改用其他东西,甚至有良好的性能原因吗? 更新:我已经测试了几个答案。见下文。

18
如何对ArrayList进行排序?
我在Java中有一个双打列表,我想按降序对ArrayList进行排序。 输入ArrayList如下: List<Double> testList = new ArrayList(); testList.add(0.5); testList.add(0.2); testList.add(0.9); testList.add(0.1); testList.add(0.1); testList.add(0.1); testList.add(0.54); testList.add(0.71); testList.add(0.71); testList.add(0.71); testList.add(0.92); testList.add(0.12); testList.add(0.65); testList.add(0.34); testList.add(0.62); 输出应该是这样的 0.92 0.9 0.71 0.71 0.71 0.65 0.62 0.54 0.5 0.34 0.2 0.12 0.1 0.1 0.1

10
逆转ArrayList的最简单方法是什么?
反转此ArrayList的最简单方法是什么? ArrayList<Integer> aList = new ArrayList<>(); //Add elements to ArrayList object aList.add("1"); aList.add("2"); aList.add("3"); aList.add("4"); aList.add("5"); while (aList.listIterator().hasPrevious()) Log.d("reverse", "" + aList.listIterator().previous());

23
从集合中获取元素
为什么不Set提供获取等于另一个元素的元素的操作? Set<Foo> set = ...; ... Foo foo = new Foo(1, 2, 3); Foo bar = set.get(foo); // get the Foo element from the Set that equals foo 我可以问一下 Set包含一个等于的元素bar,那么为什么不能得到那个元素呢?:( 为了明确起见,该equals方法被覆盖,但是它仅检查一个字段,而不是全部。因此,两个Foo被认为相等的对象实际上可以具有不同的值,这就是为什么我不能只使用foo。
322 java  collections  set  equals 

9
Java订购地图
在Java中,是否有一个对象的作用类似于用于存储和访问键/值对的Map,但是可以返回键的有序列表和值的有序列表,从而使键和值列表的顺序相同? 因此,按照代码进行解释,我正在寻找某种行为,就像我的虚拟OrderedMap: OrderedMap<Integer, String> om = new OrderedMap<>(); om.put(0, "Zero"); om.put(7, "Seven"); String o = om.get(7); // o is "Seven" List<Integer> keys = om.getKeys(); List<String> values = om.getValues(); for(int i = 0; i < keys.size(); i++) { Integer key = keys.get(i); String value = values.get(i); Assert(om.get(key) == value); }
322 java  collections 

6
Python:defaultdict的defaultdict?
有没有一种方法可以defaultdict(defaultdict(int))使以下代码正常工作? for x in stuff: d[x.a][x.b] += x.c_int d需要临时构建,具体取决于x.a和x.b元素。 我可以使用: for x in stuff: d[x.a,x.b] += x.c_int 但后来我将无法使用: d.keys() d[x.a].keys()



8
如何将收藏转换为列表?
我正在TreeBidiMap从Apache Collections库中使用。我想对这些值进行排序doubles。 我的方法是Collection使用以下方法检索一个值: Collection coll = themap.values(); 这自然工作正常。 主要问题:现在,我想知道如何将/转换(不确定哪个是正确的)coll转换为一个,List以便可以对其进行排序? 然后,我打算遍历已排序的List对象,该对象应该是有序的,并使用迭代器将位于的列表上的位置从TreeBidiMap(themap)获取适当的键。themap.getKey(iterator.next())doubles



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.