问题标签 [java-collections-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何知道 Collection 的 Iterator 是否支持 remove()?
所有 Java 都Collection
实现Iterable
了,因此它们必须提供一个Iterator
,它指定一个可选方法remove()
。当在remove()
上调用时Iterator
,它可以抛出一个UnsupportedOperationException
。
我如何知道Collection
Java 标准库中的 a 是否会在不运行代码的情况下返回Iterator
支持的?remove()
当然,我希望这些信息出现在remove()
类方法的 Javadoc 中,结果却发现了一堆超类和接口的链接。例如:http ://docs.oracle.com/javase/8/docs/api/java/util/TreeSet.html#iterator——我也没有找到任何关于链接的说明。
java - 为什么设置排序附加值?
当我开始添加价值时,Set<Integer>
我得到了排序元素。请参考这个例子:
在这里我得到排序Set
[0, 1, 2]
。我想在添加到generated
对象时获得价值。
java - JVM 空间复杂度详细信息:单链表与双链表
我遇到了一个奇怪的情况,学生(我在这种情况下是助教)必须实现他们自己的单链表 (SLL) 版本,并将其与双链表的 Java 标准库实现进行经验比较。
这就是奇怪的地方:我看到多个学生注意到,与包含相同类型元素的相同数量的 SLL 相比,DLL 配置文件的额外空间利用率大约为 0.5%。数据结构的基本分析一直告诉我,SLL 每个节点有 2 个引用(1 个指向下一个元素,1 个指向包含的值),而 DLL 有 3 个(另外一个指向前一个元素的引用)。换句话说,每个节点的空间使用量增加了 50%(不考虑包含值的大小)。
包含的值主要是整数值对象,所以我认为包含的值的大小在这里并不重要。
是什么导致了这2 个数量级的差异?我不完全确定“JVM/集合库优化”可以涵盖全部差异;否则它必须是一个 JVM/java 标准库优化的地狱。
java - java - 如何覆盖hashcode和equals方法以避免在java中的HashSet中添加重复的字符串?
在我的代码中,我有一组 PlacesInfo 对象,即
在这个集合中,我添加了 placeId(字符串)。我需要避免向我的 HashSet 添加重复项。这是我下面的覆盖方法。但是,它仍然在我的集合中添加重复的元素。那么,如何避免这种情况呢?
java - 使用 hashmap 的 RockPaperScissors 游戏
我正在为我的编程课制作一个石头剪刀布游戏,教授希望我们使用 ahash map
来存储用户的模式,并且times
模式发生在hash map
.
因此,我创建了一个Pattern
包含值数组的类,并在Computer
该类中将其存储在hash map
. 我打算让程序工作的方式是程序将首先generate a move
基于patterns
. hash map
如果地图是空的,那么它只会生成一个随机移动。然后在用户移动之后,他的移动将被放入一个数组中以形成一个新的模式,并将该模式保存到哈希映射中。如果模式已经在地图内,那么它出现的次数将会增加。
预测的移动是通过将用户的最后三个移动与地图中的模式进行比较来做出的,并查看用户接下来可能会抛出哪个移动。因此,如果用户最后 4 步是:R P S R
那么程序将采用P S R
然后添加R
P
S
并查看这些模式是否在地图中。如果是,它将查看哪一个最有可能发生。然后,如果用户R
接下来播放,数组将被更新P S R R
并继续模式。
所以初学者模式是从一张空地图开始,而老手模式是加载以前保存的地图。但是,我遇到了一些问题:
- 在我
put
将 Pattern 和 times 放入哈希映射之后,当我尝试遍历它并查看它存储在映射中的模式时,我发现所有模式都是相同的,而且这不会发生。该模式假设为:(R -> R P - > R P S
如果用户分别扔石头、纸、剪刀)但现在它只显示R P S -> R P S -> R P S
. 这可以在 Computer 中的 getSize() 中看到。 NullPointerException
我在第四步之后遇到了一个。如果我能解决前面的问题,这个问题可能会解决,但我不知道为什么会这样。- 当我尝试从文件中读取地图时收到警告,所以我只是想知道警告是否可能会干扰程序。
Unchecked cast from Object to HashMap<Pattern, Integer>
非常感谢我的程序中出现问题的一些帮助或指示。
计算机:
图案:
主要的:
java - 为什么 jdk 代码风格使用变量赋值并在同一行读取 - 例如。(i=2) < 最大值
我注意到在 jdk 源代码中,更具体地说,在集合框架中,在表达式中读取变量之前,优先分配变量。这只是一个简单的偏好还是我不知道的更重要的东西?我能想到的一个原因是该变量仅在此表达式中使用。
由于我不习惯这种风格,我觉得很难阅读。代码非常简洁。下面你可以看到一个例子取自java.util.HashMap.getNode()
java - List 中的 contains() 方法未按预期工作
方法的apicontains()
说
“如果此列表包含指定的元素,则返回 true。更正式地说,当且仅当此列表包含至少一个元素 e 满足 (o==null ? e==null : o.equals(e)) 时才返回 true。”
我在课堂上覆盖了该equals()
方法,但contains()
在我检查时仍然返回 false
我的代码
请原谅课程背后的糟糕概念,但我只是在测试对我的概念的理解。
现在当我尝试这个时,false
即使 equals 被覆盖,它也会打印
java - java扩展AbstractMap的跳过列表
我需要在java中实现跳过列表。我知道跳过列表是如何工作的,但我需要扩展 AbstractMap。所以类 SkipList 看起来像
我不明白我需要如何扩展 AbstractMap
java - 为什么并发包中不会抛出并发修改异常?
像这样的类ConcurrentHashmap
不会抛出这个异常;为什么?他们在内部做了什么来避免这个异常?如何防止并发 API 中的所有类出现这种情况?
java - Java List 和集合抽象方法不指定主体
我有一个任务,我有一个实现的类java.util.List
在作业表中说我必须实现 public interfaceCollection
和 public interface List
。我必须实施的方法之一是:
当我尝试像这样实现它时:
当我添加花括号时,它会显示错误
抽象方法不指定主体
如果有人可以帮助我。