Tag: collections

HashSet与ArrayList

所以我有一个自定义类Class,它将拥有一组另一个自定义类Student。 所以它看起来像这样: public class Class { private Set students; // other methods } 现在,我将向学生们添加和删除许多学生,我也将改变已经在学生集中的学生的许多私人领域。 问题:我应该使用什么数据结构来实现这一目标? 由于我将更改set student中的Student对象的属性(从而更改哈希码),我应该使用ArrayList吗?

为什么C#没有为集合实现GetHashCode?

我正在将一些东西从Java移植到C#。 在Java中, ArrayList的hashcode取决于其中的项。 在C#中,我总是从List获得相同的哈希码… 为什么是这样? 对于我的一些对象,哈希码需要不同,因为列表属性中的对象使对象不相等。 我希望哈希码对于对象的状态始终是唯一的,并且只在对象相等时等于另一个哈希码。 我错了吗?

List.iterator()线程安全吗?

在Java中: List.iterator()是否是线程安全的,即返回的迭代器是在任何时候反映列表的当前状态还是在创建列表时反映列表的状态?

重复的对象被添加到列表中

在向列表添加对象时,我能够看到该对象正在替换列表中的所有值。 请检查下面的图像,并注意列表中对象重复的for循环代码。 public static void main(String args[]) { ArrayList al = new ArrayList(); Modelclass obj = new Modelclass(); for (int i = 0; i < 10; i++) { obj.setName(2 + i); obj.setRoolno(4 + i); System.out.println(obj); //if (!al.equals(obj)) { al.add(obj); System.out.println(obj.getName() + "" + obj.getRoolno()); //} } }

LinkedList:Collections.max()抛出NoSuchElementException

我不是通过扫描仪或其他方法迭代LinkedList ,我使用Collections.max()从LinkedList获取最大数量。 我已经在Stack Overflow上读到由于迭代器或扫描器或标记器而引发此exception,但我没有使用它们。 import java.io.*; import java.util.*; class TLG { public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); LinkedList first = new LinkedList(); LinkedList second = new LinkedList(); int cases = Integer.parseInt(br.readLine()); for(int i=1;i 0){ first.add(diff); } else { second.add(java.lang.Math.abs(diff)); } } Integer max1 = Collections.max(first); // Getting Exception […]

java concurrent Array List访问

我有一个单身的物体。 该对象声明: List players = new ArrayList(); 同一个对象还在此arrayList上指定了4个操作: public List getPlayers() { return players; } // the result of this method can be used in another object as an iterator (or maybe by index-access) 和 public void removePlayer(Player player) { players.remove(player); } public void addPlayer(Player player) { players.add(player); } public boolean isPresent(Player player) { if […]

通用类在Java 6中编译,但不在Java 7中编译

我在Java 6中有一个正确编译的接口: public interface IMultiMap extends Map<K, Set> { public int valueSize(); public boolean put(K key, V value); public void clear(Object key); public boolean isEmpty(Object key); } 但在Java 7中,此接口无法编译。 我在boolean put(K, V)上得到一个编译错误,它与V put(K, V)具有相同的擦除。 编译器的完整错误: error: name clash: put(K#1,V#1) in IMultiMap and put(K#2,V#2) in Map have the same erasure, yet neither overrides the other public […]

如何从两个数组列表中删除常用值

我们如何从两个ArrayList中删除常用值。 让我们考虑我有两个Arraylist,如下所示 ArrayList1= [1,2,3,4] ArrayList1= [2,3,4,6,7] 我希望得到结果 ArrayListFinal= [1,6,7] 有人可以帮帮我吗?

如何使用hibernate JPA注释映射嵌套集合Map <Key,List >?

我有一节课,我不确定如何正确注释。 我对Holder :: data的目标: 列表应该不是通过比较器而是通过数组中元素的自然顺序来维护顺序。 (如果有帮助,可以是ndx列。) 持有人将拥有唯一的数据参考,因此Cascade all也可能适用。 我也愿意采用不同的设计来移除地图,如果这样可以实现更清洁的设计。 @Entity public class Holder extends DomainObject { private Map<Enum,List> data; } @Entity public class Element extends DomainObject { private long valueId; private int otherData; } @Mappedsuperclass public class DomainObject { // provides id // optimistic locking // create and update date }

从内存分配角度看ArrayList与LinkedList

我需要存储大量信息,例如java列表中的“名称”。 项目数量可以改变(或者简而言之,我不能预定义大小)。 我认为从内存分配的角度看,LinkedList比ArrayList更好,对于一个ArrayList,一旦达到最大大小,内存分配自动加倍,因此总是有可能分配比内存更多的内存。需要什么。 我从其他post中了解到,存储在LinkedList中的单个元素比ArrayList占用更多空间,因为LinkedList也需要存储节点信息,但我仍然猜测我已定义的场景LinkedList可能是更好的选择。 此外,我不想进入性能方面(获取,删除等),因为已经讨论过很多内容。