我有一个类,其中包含多种类型的变量,其中大多数(大约 30 个)是双重的:
String something;
double x;
double y;
double z;
...
我想迭代双打,但也要让它们以这种“经典方式”而不是在数组中编写,因为派生类使用它们中的大部分。我现在遇到的问题是如何遍历所有双精度类型变量,找出其中有多少是非零的,然后随机选择所有这些变量中的一个。这个类会有数千个实例,正如我所说,有一些类可以扩展这个类。所以我正在研究解决方案,最好是伪类:
nonzeros = 0
foreach doubleVarInClass variable
{
if (variable != 0)
nonzeros++;
}
if (nonzeros < parameter)
{
randomDoubleVarInClass = random.next(...);
}
我正在考虑的一种解决方案是使用 HashMap 来保留所有变量,但是我将不得不重写所有使用这个的类并且不确定它会如何影响性能,因为它会一直被大量使用. 我应该害怕性能并尝试使用经典数组吗?如果没有的话,我想至少保留变量名。我想到了引用这些变量的数组,所以我可以这样写,由于Java中的值传递,不确定它是否可能。
也可能有一些结构可以保留有关其中有多少是非零或具有有效功能的信息?
感谢您提供任何可以解决我的问题的信息:)