小编gpa*_*ara的帖子

google的ImmutableList和Collections.unmodifiableList()有什么区别?

来自ImmutableList javadocs:

与Collections.unmodifiableList(java.util.List)不同,后者是一个仍然可以更改的单独集合的视图,ImmutableList的实例包含其自己的私有数据,并且永远不会更改.ImmutableList方便公共静态最终列表("常量列表"),还可以让您轻松地为调用者提供给您的类的列表的"防御性副本".

这是否意味着:

  1. 如果我有Dimension对象的ImmutableList(例如),那么我不能更改其中的任何Dimension对象?
  2. 如果我有Dimension对象的Collections.unmodifiableList(列表),那么我不仅可以添加或删除任何对象,但我可以更改它们(例如调用setDimension(width,height)方法)?

java collections comparison guava

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

Iterables.find和Iterators.find - 而不是抛出异常,得到null

我正在使用google-collections并尝试找到满足谓词的第一个元素,如果没有,请返回'null'.

不幸的是,当没有找到元素时,Iterables.find和Iterators.find抛出NoSuchElementException.

现在,我被迫做了

Object found = null;
if ( Iterators.any( newIterator(...) , my_predicate )
{
    found = Iterators.find( newIterator(...), my_predicate )
}
Run Code Online (Sandbox Code Playgroud)

我可以通过'try/catch'进行环绕并做同样的事情但是对于我的用例,我会遇到很多没有找到元素的情况.

有更简单的方法吗?

java guava

8
推荐指数
2
解决办法
4746
查看次数

使用Scala Argonaut解析JSON数组

我正在使用Scala&Argonaut,尝试解析以下JSON:

[
    {
        "name": "apple",
        "type": "fruit",
        "size": 3
    },
    {
        "name": "jam",
        "type": "condiment",
        "size": 5
    },
    {
        "name": "beef",
        "type": "meat",
        "size": 1
    }
]
Run Code Online (Sandbox Code Playgroud)

而奋力工作,如何进行迭代,把值到一个List[MyType]地方MyType都会有名称,类型和大小等属性.

我将很快发布更具体的代码(我尝试了很多东西),但基本上我想了解光标的工作方式,以及如何遍历数组等.我尝试使用\\(downArray)移动到头部数组,然后:->-迭代数组,然后--\(downField)不可用(至少IntelliJ不这么认为).所以问题是我如何:

  • 导航到数组
  • 遍历数组(并知道我什么时候完成)
  • 提取每个字段的字符串,整数等值 - jdecode[String]as[String]

json scala argonaut

7
推荐指数
1
解决办法
2241
查看次数

Java:如何使用Google的HashBiMap?

键是文件和单词.该文件提供文件中的所有单词.这个词给出了所有包含这个词的文件.我不确定域和共域部分.我希望K是类型<String>,V是类型<HashSet<FileObject>>.

    public HashBiMap<K<String>,V<HashSet<FileObject>>> wordToFiles 
            = new HashBiMap<K<String>,V<HashSet<FileObject>>>();

    public HashBiMap<K<String>,V<HashSet<FileObject>>> fileToWords 
            = new HashBiMap<K<String>,V<HashSet<FileObject>>>();
Run Code Online (Sandbox Code Playgroud)

谷歌的HashBiMap.

java guava

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

guava ×3

java ×3

argonaut ×1

collections ×1

comparison ×1

json ×1

scala ×1