Questions tagged «collections»

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

1
如何使用Java 8 Stream从某些类属性获取列表?
我有一个List<Person>。我需要List从的属性获得Person。 例如,我有一个Person课: class Person { private String name; private String birthDate; public String getName() { return name; } public String getBirthDate() { return birthDate; } Person(String name) { this.name = name; } } List<Person> personList = new ArrayList<>(); personList.add(new Person("David")); personList.add(new Person("Joe")); personList.add(new Person("Michel")); personList.add(new Person("Barak")); 我想使用StreamAPI 获取名称列表,如下所示: List<String> names …


8
为什么会引发ConcurrentModificationException以及如何对其进行调试
我正在使用Collection(HashMapJPA间接使用的a ,它确实发生了),但显然代码是随机抛出的ConcurrentModificationException。是什么原因引起的,如何解决此问题?通过使用一些同步,也许吗? 这是完整的堆栈跟踪: Exception in thread "pool-1-thread-1" java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(Unknown Source) at java.util.HashMap$ValueIterator.next(Unknown Source) at org.hibernate.collection.AbstractPersistentCollection$IteratorProxy.next(AbstractPersistentCollection.java:555) at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:296) at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:242) at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219) at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169) at org.hibernate.engine.Cascade.cascade(Cascade.java:130)

8
如何在Java中生成连续整数的列表或数组?
有没有产生一个简短而亲切的方式List<Integer>,或者可能是 Integer[]或int[],与一些连续值start值的end价值? 也就是说,以下内容比以下内容短,但等于1: void List<Integer> makeSequence(int begin, int end) { List<Integer> ret = new ArrayList<>(end - begin + 1); for (int i=begin; i<=end; i++) { ret.add(i); } return ret; } 番石榴的用途很好。 更新: 绩效分析 由于使用本机Java 8和第三方库都可以很好地回答这个问题,所以我认为我应该测试所有解决方案的性能。 第一个测试只是[1..10]使用以下方法测试创建包含10个元素的列表: classicArrayList:我问题中上面给出的代码(与adarshr的回答基本相同)。 eclipseCollections:下面的Donald答案中使用Eclipse Collections 8.0 给出的代码。 guavaRange:下面的daveb答案中给出的代码。从技术上讲,这并不会创建List<Integer>而是ContiguousSet<Integer>-,但是由于它Iterable<Integer>是按顺序实现的,因此大多数情况下可以实现我的目的。 intStreamRange:下面弗拉基米尔的答案中给出的代码,它使用IntStream.rangeClosed()-在Java 8中引入的。 streamIterate:下面的Catalin答案中给出的代码,该代码也使用IntStreamJava 8中引入的功能。 以下是上述所有大小为10的列表的结果,以千千克/秒为单位(数字越大越好): ...再一次列出大小为10,000的列表: 最后一张图表是正确的-除Eclipse和Guava之外的解决方案太慢,甚至无法获得单个像素条!快速的解决方案是其他解决方案的10,000到20,000 倍。 …

15
用Java打印HashMap
我有一个HashMap: private HashMap<TypeKey, TypeValue> example = new HashMap<TypeKey, TypeValue>(); 现在,我想遍历所有值并打印它们。 我这样写: for (TypeValue name : this.example.keySet()) { System.out.println(name); } 它似乎不起作用。 问题是什么? 编辑:另一个问题:此集合是零基础吗?我的意思是,如果它具有1个键并且值将为0或1?
129 java  collections 

10
在C#中创建常量字典
创建s到s 的常量(运行时永不更改)的最有效方法是什么?stringint 我试过使用const Dictionary,但是没有解决。 我可以用适当的语义实现一个不变的包装器,但这似乎并不完全正确。 对于那些提出要求的人,我正在生成的类中实现IDataErrorInfo,并正在寻找一种方法来使columnName查找进入我的描述符数组。 我不知道(测试时输入错误!d!哦!)该开关接受字符串,所以这就是我要使用的。谢谢!

7
我应该使用哪个Java集合?
在这个问题中,如何在C ++ 11中有效地选择标准库容器?是选择C ++集合时要使用的便捷流程图。 我认为对于那些不确定应该使用哪个集合的人来说,这是一个有用的资源,因此我试图找到类似的Java流程图,但未能做到。 哪些资源和“备忘单”可用来帮助人们选择使用Java进行编程时要使用的正确Collection?人们如何知道应该使用哪些List,Set和Map实现?

7
绑定@RequestParam中的列表
我以这种方式从表单发送一些参数: myparam[0] : 'myValue1' myparam[1] : 'myValue2' myparam[2] : 'myValue3' otherParam : 'otherValue' anotherParam : 'anotherValue' ... 我知道我可以通过添加类似的参数来获取控制器方法中的所有参数 public String controllerMethod(@RequestParam Map<String, String> params){ .... } 我想将参数myParam [](而不是其他参数)绑定到列表或数组(任何保持索引顺序的东西),因此我尝试使用以下语法: public String controllerMethod(@RequestParam(value="myParam") List<String> myParams){ .... } 和 public String controllerMethod(@RequestParam(value="myParam") String[] myParams){ .... } 但它们都没有绑定myParam。即使将值添加到地图,它也无法绑定参数: public String controllerMethod(@RequestParam(value="myParam") Map<String, String> params){ …

5
如何在Python中创建一组集?
我正在尝试在Python中设置一组。我不知道该怎么做。 从空集开始xx: xx = set([]) # Now we have some other set, for example elements = set([2,3,4]) xx.add(elements) 但我明白了 TypeError: unhashable type: 'list' 要么 TypeError: unhashable type: 'set' Python中可能有一组集合吗? 我正在处理大量集合,但我希望不必处理重复的集合(集合A1,集合A2,....的集合B,如果Ai = Aj,则“将取消”两个集合)

8
将集合转换为数组的最简单方法?
假设我们有一个Collection<Foo>。将其转换为的最佳方法(在当前上下文中,LoC最短)是Foo[]什么?允许使用任何知名的库。 UPD:(更多的情况在本节中,发表评论,如果你认为它的价值创造另一个线程它):关于什么转变Collection<Foo>到Bar[]那里Bar与1个型参数有构造函数Foo,即public Bar(Foo foo){ ... }?

5
ReadOnlyCollection或IEnumerable用于公开成员集合?
如果调用代码仅对集合进行迭代,是否有任何理由将内部集合公开为ReadOnlyCollection而不是IEnumerable? class Bar { private ICollection<Foo> foos; // Which one is to be preferred? public IEnumerable<Foo> Foos { ... } public ReadOnlyCollection<Foo> Foos { ... } } // Calling code: foreach (var f in bar.Foos) DoSomething(f); 如我所见,IEnumerable是ReadOnlyCollection接口的子集,它不允许用户修改集合。因此,如果IEnumberable接口足够了,那就可以使用它。这是推理的正确方法,还是我错过了一些东西? 谢谢/ Erik

10
从HashMap获取字符串值,具体取决于键名
我有一个HashMap具有各种键和值的,如何获得一个值? 我在映射中有一个名为的键my_code,它应该包含一个字符串,如何在不迭代映射的情况下获取它呢? 到目前为止,我有.. HashMap newMap = new HashMap(paramMap); String s = newMap.get("my_code").toString(); 我期望看到一个String,例如“ ABC”或“ DEF”,因为这是我最初在此处输入的内容,但是如果我这样做,则会System.out.println()得到类似java.lang.string#F0454 抱歉,您可能会猜到我对地图不太熟悉;)



15
线程安全的List <T>属性
我想要一个List&lt;T&gt;作为属性的实现,可以毫无疑问地在线程安全地使用它。 像这样: private List&lt;T&gt; _list; private List&lt;T&gt; MyT { get { // return a copy of _list; } set { _list = value; } } 似乎仍然需要返回集合的副本(克隆的),因此,如果在某个地方我们正在迭代集合并且同时设置了集合,则不会引发异常。 如何实现线程安全的集合属性?

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.