Tag: 集合

使用Collections API来随机播放

我变得非常沮丧,因为我似乎无法弄清楚为什么Collections shuffling无法正常工作。 让我们说我试图改组randomizerarrays。 int[] randomizer = new int[] {200,300,212,111,6,2332}; Collections.shuffle(Arrays.asList(randomizer)); 由于某种原因,无论我是否调用shuffle方法,元素都保持完全相同的排序。 有任何想法吗?

给出一个IP地址列表,你如何找到min,max?

在Java中,我有一个ip地址的arrayList。 我如何找到最小值和最大值? 我已经使用了Collection.min()但它不起作用给出如下情况: 192.168.0.1 <–min 192.168.0.250 192.168.0.9 <–max 我怎么回来 192.168.0.1 <–min 192.168.0.250 <–max 代替? ArrayList是从数据库中检索的。 我需要每次滴答做这个操作(每个滴答间隔为5秒)。 IP地址的数量最多可能达到300。

从Java Set获取项目

我有一套昂贵的物品。 这些对象具有ID, equals使用这些ID进行相等。 这些对象的类型有两个构造函数; 一个用于昂贵的对象,另一个用于设置ID。 所以我可以使用Set.contains(new Object(ID))检查特定ID是否在Set 。 但是,确定对象在集合中后,我无法获取集合中的对象实例。 如何获取该集合包含的确切对象?

使用Collections.frequency()打印某些值

我有一个数组如下: int[] array = {11, 14, 17, 11, 48, 33, 29, 11, 17, 22, 11, 48, 18}; 我想要做的是找到重复的值,并打印出来。 所以我这样做的方法是转换为ArrayList ,然后Set并使用Set上的stream 。 ArrayList list = new ArrayList(array.length); for (int i = 0; i < array.length; i++) { list.add(array[i]); } Set dup = new HashSet(list); 然后我使用stream循环遍历它并使用Collections.frequency打印值。 dup.stream().forEach((key) -> { System.out.println(key + “: ” + Collections.frequency(list, key)); }); […]

你期望不可变列表的不变性有多深?

如果你有一个不可变列表,那么你希望它总是在你要求的时候返回对同一个对象的引用 list.get(0) 我的问题是,您是否希望能够改变对象并在下次从列表中获取突变时反映出变异?

HashSet包含()方法

我执行下面的代码,发现输出是false 。 import java.util.Set; import java.util.HashSet; public class Name { private String first, last; public Name(String first, String last) { this.first = first; this.last = last; } public boolean equals(Object o) { if (!(o instanceof Name)) return false; Name n = (Name) o; return n.first.equals(first) && n.last.equals(last); } public static void main(String[] args) { Set […]

当您知道HashSet中最大可能的元素数时,应使用什么负载因子

当我真正知道HashSet中最大可能的元素数时,我应该使用什么负载因子? 我听说建议使用0.75的默认负载系数,因为它在速度和空间之间提供了良好的性能折衷。 它是否正确 ? 但是,更大的HashSet也会在创建和更多空间上花费更多时间。 我正在使用HashSet,以便从整数列表中删除重复的整数。

在Java 6中使用的最佳方法,可以同时访问List

我有一个由多个线程访问的List对象。 主要有一个线程,在某些情况下有两个线程,用于更新列表。 根据正在处理的用户请求数,有一到五个可以从此列表中读取的线程。 该列表不是要执行的任务队列,它是正在检索和同时更新的域对象的列表。 现在有几种方法可以访问此列表的线程安全: – 使用同步块 – 使用普通锁 (即读写操作共享相同的锁) – 使用ReadWriteLock – 使用一个新的ConcurrentBLABLBA集合类 我的问题: 什么是最佳使用方法,因为cricital部分通常不包含大量操作(大多数只是添加/删除/插入或从列表中获取元素)? 你能推荐另一种方法,上面未列出吗? 有些限制 – 最佳性能至关重要,内存使用不是那么多 -it必须是有序列表(当前在ArrayList上同步),尽管不是排序列表(即不使用Comparable或Comparator排序,但根据插入顺序排序) – 列表很大,包含多达100000个域对象,因此使用像CopyOnWriteArrayList这样的东西是不可行的 – 写入/更新电路部分通常非常快,做简单的添加/删除/插入或替换(设置​​) – 大多数时候,读取操作主要执行elementAt(索引)调用,尽管某些读取操作可能会进行二分查找,或者indexOf(元素) – 不会对列表进行直接迭代,但像indexOf(..)这样的操作将遍历列表

以相反顺序打印任何collections中的项目?

我在使用Java book的数据结构和问题解决中遇到以下问题: 编写一个使用Collections API以相反顺序打印任何Collection中的项目的例程。 不要使用ListIterator。 我不是把它放在这里,因为我希望有人做我的作业,我似乎无法理解它要求我编码的确切内容! 当它要求我写一个’例程’时,它是否在寻找一种方法? 我真的不明白如何使单个方法适用于所有各种类型的集合(链表,队列,堆栈)。 如果有人能指导我朝正确的方向发展,我将不胜感激。

Java重写两个接口,方法名称的冲突

我在一个类中实现了Map和Collection接口,但是在两个接口中都发生了remove(Object)方法,因此eclipse向我显示了一些错误。 返回类型不同,一个返回boolean ,另一个返回V但这似乎并不重要。 有没有办法告诉java / eclipse哪个方法实际被覆盖? 编辑:我有一个所有值必须实现的接口,它使用getKey()方法提供值,从而可以为地图编写一个add函数。 但是似乎没有办法让这个类同时看起来像一个地图和一个集合?