标签: collections

哪个更有效,for-each循环还是迭代器?

哪种是最有效的遍历集合的方式?

List<Integer>  a = new ArrayList<Integer>();
for (Integer integer : a) {
  integer.toString();
}
Run Code Online (Sandbox Code Playgroud)

要么

List<Integer>  a = new ArrayList<Integer>();
for (Iterator iterator = a.iterator(); iterator.hasNext();) {
   Integer integer = (Integer) iterator.next();
   integer.toString();
}
Run Code Online (Sandbox Code Playgroud)

请注意,这不是这个,这个,这个这个的完全重复,尽管最后一个问题的答案之一很接近.这不是欺骗的原因是,大多数都是比较你get(i)在循环中调用的循环,而不是使用迭代器.

正如Meta上所建议的,我将发布我对这个问题的回答.

java collections foreach

196
推荐指数
4
解决办法
18万
查看次数

有没有办法在Rails应用程序中获取所有模型的集合?

有没有办法可以在Rails应用程序中获得所有模型的集合?

基本上,我可以这样做: -

Models.each do |model|
  puts model.class.name
end
Run Code Online (Sandbox Code Playgroud)

collections activerecord model ruby-on-rails

194
推荐指数
15
解决办法
9万
查看次数

正确地从List <Integer>中删除整数

这是我刚刚遇到的一个很好的陷阱.考虑一个整数列表:

List<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(6);
list.add(7);
list.add(1);
Run Code Online (Sandbox Code Playgroud)

对你执行时会发生什么的任何有根据的猜测list.remove(1)?怎么样list.remove(new Integer(1))?这可能会导致一些令人讨厌的错误.

在处理整数列表时,区分remove(int index)哪个元素从给定索引remove(Object o)中删除元素以及通过引用删除元素的正确方法是什么?


这里要考虑的要点是提到@Nikita - 精确参数匹配优先于自动装箱.

java collections overloading

194
推荐指数
5
解决办法
8万
查看次数

克隆/深度复制.NET泛型字典<string,T>的最佳方法是什么?

我有一个通用词典词典,我想基本上做一个克隆()的任何建议.

c# generics collections clone

191
推荐指数
8
解决办法
16万
查看次数

在Java中验证null和空集合的最佳实践

我想验证集合是否为空null.谁能告诉我最好的做法.

目前,我正在检查如下:

if (null == sampleMap || sampleMap.isEmpty()) {
  // do something
} 
else {
  // do something else
}
Run Code Online (Sandbox Code Playgroud)

java collections

188
推荐指数
7
解决办法
26万
查看次数

容纳Java的最后N个元素的大小限制队列

关于Java库的一个非常简单快速的问题:是否有一个现成的类,它实现了Queue一个固定的最大大小 - 即它总是允许添加元素,但它会默默地删除头元素以容纳新添加元素的空间.

当然,手动实现它是微不足道的:

import java.util.LinkedList;

public class LimitedQueue<E> extends LinkedList<E> {
    private int limit;

    public LimitedQueue(int limit) {
        this.limit = limit;
    }

    @Override
    public boolean add(E o) {
        super.add(o);
        while (size() > limit) { super.remove(); }
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,Java stdlibs中没有标准的实现,但可能是Apache Commons中的那个或类似的东西?

java queue collections

185
推荐指数
5
解决办法
11万
查看次数

Kotlin的名单缺少"添加","删除"等?

在Java中,我们可以执行以下操作

public class TempClass {
    List<Integer> myList = null;
    void doSomething() {
        myList = new ArrayList<>();
        myList.add(10);
        myList.remove(10);
    }
}
Run Code Online (Sandbox Code Playgroud)

但如果我们直接将其重写为Kotlin,如下所示

class TempClass {
    var myList: List<Int>? = null
    fun doSomething() {
        myList = ArrayList<Int>()
        myList!!.add(10)
        myList!!.remove(10)
    }
}
Run Code Online (Sandbox Code Playgroud)

我从我的列表中得到了没有找到addremove运行的错误

我努力将它转换为ArrayList,但这需要投射它是奇怪的,而在Java中不需要.这就违背了抽象类List的目的

class TempClass {
    var myList: List<Int>? = null
    fun doSomething() {
        myList = ArrayList<Int>()
        (myList!! as ArrayList).add(10)
        (myList!! as ArrayList).remove(10)
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让我使用List但不需要投射它,就像在Java中可以做到的那样?

collections kotlin

178
推荐指数
7
解决办法
10万
查看次数

将JSON转换为Map

转换JSON代码的最佳方法是:

{ 
    "data" : 
    { 
        "field1" : "value1", 
        "field2" : "value2"
    }
}
Run Code Online (Sandbox Code Playgroud)

在Java Map中,其中一个键是(field1,field2),这些字段的值是(value1,value2).

有任何想法吗?我应该使用Json-lib吗?或者更好,如果我写自己的解析器?

java collections parsing json

174
推荐指数
8
解决办法
43万
查看次数

标准Kotlin库中提供了哪些Java 8 Stream.collect等价物?

在Java 8中,Stream.collect允许对集合进行聚合.在Kotlin中,除了作为stdlib中的扩展函数的集合之外,它不以相同的方式存在.但目前尚不清楚不同用例的等价性.

例如,在JavaDocCollectors顶部是为Java 8编写的示例,当将它们移植到Kolin时,在不同的JDK版本上不能使用Java 8类,因此它们应该以不同的方式编写.

在网上显示Kotlin集合示例的资源方面,它们通常是微不足道的,并没有真正与相同的用例进行比较.什么是真正符合Java 8记录的案例的好例子Stream.collect?那里的清单是:

  • 将名称累积到列表中
  • 将名称累积到TreeSet中
  • 将元素转换为字符串并将它们连接起来,用逗号分隔
  • 计算员工工资的总和
  • 按部门分组员工
  • 按部门计算工资总额
  • 将学生分成传球和失败

以上链接的JavaDoc中的详细信息.

注意: 这个问题是由作者故意编写和回答的(答案问题),因此对于常见问题的Kotlin主题的惯用答案存在于SO中.还要澄清为Kotlin的alphas写的一些非常古老的答案,这些答案对于当前的Kotlin来说是不准确的.

java collections java-8 kotlin java-stream

171
推荐指数
2
解决办法
3万
查看次数

是否有内置的方法来比较集合?

我想在我的Equals方法中比较几个集合的内容.我有一个词典和一个IList.有没有内置的方法来做到这一点?

编辑:我想比较两个字典和两个IList,所以我认为平等意味着什么是明确的 - 如果两个字典包含映射到相同值的相同键,那么它们是相等的.

.net c# collections

170
推荐指数
6
解决办法
8万
查看次数