小编Cap*_*jan的帖子

是否有浮点无穷小?

由于存在有限多个浮点数并且可以比较每个可能的这样的数字对(我假设),所以必须始终存在数字'b',这是

  1. 小于某个给定数字'a'(不是+/-无穷大)和
  2. 没有数字'c'小于'a'且大于'b';

即"下一个"较小的浮点数代表.我怀疑是否:

  1. 有一个函数较小(float a)在C编程语言中返回这样的数字b(或更大(浮动a))
  2. 如果没有,那么如果有办法为某些类型的数字'a'获得这些'下一个'数字,例如,如果'a'是整数/零.

float smaller(float a) return a - 0.00...001f;
Run Code Online (Sandbox Code Playgroud)

在我看来,这可能不适用于所有可能的输入,但我可能是错的,所以这就是为什么我转向你们.任何帮助都是有意义的.

c floating-point

3
推荐指数
2
解决办法
76
查看次数

用于唯一对象实例的 Java Map?

我使用的库包含某种对象类型LackingObject(某种类型),它缺少类型Ext(某种类型)的属性。如果我能够更改LackingObject类,我只需添加一个 type 属性Ext,但LackingObject不能更改,也不能扩展。我现在在语言中所做的C或者C++是创建一个Map映射LackingObjects到 的语言Exts,在 Java 中,它会(有点等效)看起来

Map<LackingObject, Ext> object_extension = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

所以每当我LackingObject第一次在我的代码中遇到 a时,我可以调用

LackingObject o = ...;
Ext value = compute_value_for(o, ...);
object_extension.put(o, value);
Run Code Online (Sandbox Code Playgroud)

然后,为了回忆那个添加的属性,我会打电话

Ext resolved = object_extension.get(o);
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用,因为默认HashMap行为是将Object::hashCode, not的结果映射Objects到值,所以如果我有两个(除了Ext值)equal LackingObjects,它们不能都是java.util.HashMap.

问题:在 Java 中,是否至少存在以下一项:

  • 一种让标准库将对象实例映射到值的方法?

  • 一种接收对象实例的唯一标识符的方法?

我发现一个 7 年前的帖子与这个主题有些相关,但我希望这些年来情况有所改变。

最后的方法是创建一个包装类,

class Wrapper{
    LackingObject o; …
Run Code Online (Sandbox Code Playgroud)

java reference hashmap instance

2
推荐指数
1
解决办法
106
查看次数

标签 统计

c ×1

floating-point ×1

hashmap ×1

instance ×1

java ×1

reference ×1