标签: collections

为什么ConcurrentHashMap没有ConcurrentHashSet

HashSet基于HashMap.

如果我们看一下HashSet<E>实现,一切都在管理之下HashMap<E,Object>.

<E>被用作关键词HashMap.

我们知道这HashMap不是线程安全的.这就是我们ConcurrentHashMap在Java中的原因.

基于此,我很困惑,为什么我们没有一个应该基于的ConcurrentHashSet ConcurrentHashMap

还有什么我想念的吗?我需要Set在多线程环境中使用.

另外,如果我想创建我自己的ConcurrentHashSet,我可以通过替换HashMapto来实现它,ConcurrentHashMap并将其余部分保留原样?

java collections concurrency hashmap hashset

496
推荐指数
8
解决办法
20万
查看次数

为什么Java中没有SortedList?

在Java中有SortedSetSortedMap接口.两者都属于Java的标准集合框架,并提供了一种访问元素的排序方式.

但是,根据我的理解SortedList,Java中没有.您可以使用java.util.Collections.sort()对列表进行排序.

知道为什么它的设计是这样的吗?

java sorting collections

479
推荐指数
6
解决办法
44万
查看次数

是否有列表的短包含功能?

我看到人们正在使用any收集另一个列表来查看列表中是否存在某个项目,但是有一个快速的方法可以做到吗?:

if list.contains(myItem):
    # do something
Run Code Online (Sandbox Code Playgroud)

python collections search contains list

473
推荐指数
4
解决办法
58万
查看次数

如何从ArrayList中删除重复的元素?

我有一个ArrayList<String>,我想从中删除重复的字符串.我怎样才能做到这一点?

java collections list arraylist duplicates

472
推荐指数
15
解决办法
74万
查看次数

如何在Java 8中将列表列表转换为列表?

如果我有一个List<List<Object>>,我如何List<Object>通过使用Java 8的功能将其转换为包含相同迭代顺序中的所有对象?

java collections java-8

470
推荐指数
8
解决办法
24万
查看次数

C#集合集?

有谁知道Set在C#中是否有与Java 集合相当的好处?我知道你可以使用a Dictionary或者HashTable通过填充而忽略值来模仿一个集合,但这不是一个非常优雅的方式.

.net c# collections set

463
推荐指数
7
解决办法
35万
查看次数

从Java 8中的java.util.stream.Stream中检索List

我正在玩Java 8 lambdas来轻松过滤集合.但我没有找到一种简洁的方法来将结果作为新列表检索到同一语句中.到目前为止,这是我最简洁的方法:

List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L);
List<Long> targetLongList = new ArrayList<>();
sourceLongList.stream().filter(l -> l > 100).forEach(targetLongList::add);
Run Code Online (Sandbox Code Playgroud)

网上的例子没有回答我的问题,因为他们停止而没有生成新的结果列表.必须有一个更简洁的方式.我本来期望的是,Stream类有方法为toList(),toSet(),...

有没有办法targetLongList可以直接由第三行分配变量?

collections lambda java-8 java-stream

431
推荐指数
7
解决办法
31万
查看次数

如何将Set转换为Array?

套装似乎是一个很好的方式来创建保证唯一的元素数组,但它不公开任何好的办法来获取属性,除了发电机[设置] .values,被称为在一个尴尬的方式mySet.values.next().

如果您可以map在集合上调用和类似的函数,那就没问题了.但你也不能这样做.

我试过了Array.from,但似乎只是将类似数组(NodeList和TypedArrays?)的对象转换为Array.另一个尝试:Object.keys对Sets不起作用,而Set.prototype没有类似的静态方法.

所以,问题:是否有任何方便的内置方法来创建具有给定Set值的数组?(元素的顺序并不重要).

如果没有这样的选择,那么也许有一个很好的惯用的单行代码呢?喜欢,使用for...of或类似?

javascript arrays collections syntax ecmascript-harmony

427
推荐指数
5
解决办法
21万
查看次数

Java 8属性不同

在Java 8中,如何Stream通过检查每个对象的属性的清晰度来使用API 过滤集合?

例如,我有一个Person对象列表,我想删除具有相同名称的人,

persons.stream().distinct();
Run Code Online (Sandbox Code Playgroud)

将使用Person对象的默认相等检查,所以我需要像,

persons.stream().distinct(p -> p.getName());
Run Code Online (Sandbox Code Playgroud)

不幸的是,该distinct()方法没有这种过载.如果不修改类中的相等性检查,Person是否可以简洁地执行此操作?

java collections java-8 java-stream

406
推荐指数
20
解决办法
24万
查看次数

将Iterable转换为Collection的简便方法

在我的应用程序中,我使用第三方库(确切地说是MongoDB的Spring Data).

这个库的方法返回Iterable<T>,而我的其余代码需要Collection<T>.

有什么实用方法可以让我快速将一个转换为另一个吗?我想避免foreach在我的代码中为这么简单的事情创建一堆循环.

java collections

398
推荐指数
15
解决办法
31万
查看次数