Tag: 集合

Java TreeSet:remove和contains()不起作用

我已经向TreeSet添加了一些简单的对象,但是当我调用TreeSet的remove()和contains()方法时,它们不起作用。 但是,当我遍历集合时,会打印对象。 当对象唯一性基于对象名称属性时,应将Employee对象添加到集合中。 Id属性是应该排序的值,但不是唯一的。 public class Employee { private String name; private int id; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } // Two objects are considered equal if their names […]

为什么Collections.sort(List)在Java 8中使用CopyOnWriteArrayList但在Java 7中不起作用?

我可以使用以下代码和Java 8对用户列表进行排序而没有任何问题: CopyOnWriteArrayList allCurrentLoginnedUsersList = new CopyOnWriteArrayList(); Collections.sort(allCurrentLoginnedUsersList); 现在,我改为Java 7,我在eclipse上看到没有错误。 但是现在,在Java 7下运行时出现了这个错误: java.lang.UnsupportedOperationException at java.util.concurrent.CopyOnWriteArrayList$COWIterator.set(CopyOnWriteArrayList.java:1049) at java.util.Collections.sort(Collections.java:221) at com.fluent.User.sortAllCurrentLoginnedUsers(User.java:446) 怎么解决?

Arrays.asList(T array)?

所以有Arrays.asList(T… a)但这适用于varargs。 如果我已经将数组放在T[] a怎么办? 是否有一种方便的方法来创建List ,或者我必须手动执行以下操作: static public List arrayAsList(T[] a) { List result = new ArrayList(a.length); for (T t : a) result.add(t); return result; }

有人知道为低内存使用而优化的java.util.Map实现吗?

我看过通常的地方(apache commons,google)而找不到… 它应该是开源的。 几乎找到一个基于链表的。 用例是10’000的地图,不一定有很多值。它不需要按比例放大,因为当它变得太大时我可以转换它。 一些数字,大小使用一些计算的jvm值(8bytes / java.lang.Object,4bytes / ref)HashMap大约是100 + 32n字节,理论上最好的是12 + 20 * n。 < – 我想要那个,小n。

Collection – Iterator.remove()vs Collection.remove()

按照Sun, “Iterator.remove是在迭代期间修改集合的唯一安全方法;如果在迭代进行过程中以任何其他方式修改基础集合,则行为未指定。” 我有两个问题: 是什么让这个操作“Iterator.remove()”比其他操作稳定? 如果它在大多数用例中没用,它们为什么提供“Collection.remove()”方法呢?

在Java 1.5中将非genericsList类型转换为Generic List类型

我有一个List,保证只包含一个类型对象。 这是由我无法更新的库中的某些底层代码创建的。 我想基于传入的List对象创建一个List ,以便我的调用代码与List 进行通信。 将List(或任何其他对象集合)转换为List 的最佳方法是什么。

如何在java中获取地图的差异?

我有两张地图: Map map1; Map map2; 我需要收到这些地图之间的差异。 是否存在可能是apache utils如何获得这种差异? 现在似乎需要获取每个地图的入口集,发现diff1 = set1 – set2和diff2 = set2- set1。 创建汇总map = diff1 + diff2之后看起来非常笨拙。 是否存在另一种方式? 谢谢。

有一个collections监听器的好方法?

有没有更好的方法在java集合上拥有一个监听器,而不是将它包装在一个实现观察者模式的类中?

ArrayList.addAll的任何null安全替代?

我正在重构我编写的一些旧代码,我在这段代码上做了标记: List fullImagePool = new ArrayList(); if (CollectionUtils.isNotEmpty(style.getTestMH())) { fullImagePool.addAll(style.getTestMH()); } if (CollectionUtils.isNotEmpty(style.getTrousers())) { fullImagePool.addAll(style.getTrousers()); } if (CollectionUtils.isNotEmpty(style.getDetailRevers())) { fullImagePool.addAll(style.getDetailRevers()); } if (CollectionUtils.isNotEmpty(style.getDetailCuffs())) { fullImagePool.addAll(style.getDetailCuffs()); } if (CollectionUtils.isNotEmpty(style.getDetailInner())) { fullImagePool.addAll(style.getDetailInner()); } if (CollectionUtils.isNotEmpty(style.getDetailMaterial())) { fullImagePool.addAll(style.getDetailMaterial()); } if (CollectionUtils.isNotEmpty(style.getComposing())) { fullImagePool.addAll(style.getComposing()); } … 所以基本上我需要创建一个ArrayList,其中包含这里引用的所有列表,因为它们可以为null(它们是从一个封闭的源框架中提取出来的数据库,不幸的是如果他没有找到任何内容则为null),我需要每次检查集合是否为null时将它们添加到此池中,这看起来很奇怪。 是否有一个库或Collection-Framework实用程序类,使我能够在不执行空安全检查的情况下将集合添加到另一个集合中?

Hibernate:集合的集合

这是我一直遇到的问题: 我想让hibernate管理一个代表集合集合的表。 例如: 地图地图 套装清单 列表地图 例如,我希望能够代表这一点: class OwningClass { 长实体; Map <String,List > mapOfLists; } class Element { String data_1; 布尔数据_2; } 作为单个表: OWNER(此元素所有者的外键)MAP_KEY(varchar(30))LIST_INDEX(int)ELEMENT_DATA_1(varchar(1020)ELEMENT_DATA_2(bit) 没有自定义的hibernate代码似乎不可能,我不介意。 但我希望有人对自定义代码的外观有一些指导。 我应该扩展AbstractPersistentCollection吗? CompositeUserType? 它可以管理多个表是否正常,但显然从db角度来看是蹩脚的。