複数の型の変数を含むクラスがありますが、それらのほとんど (約 30) は double です。
String something;
double x;
double y;
double z;
...
double を反復処理したいだけでなく、派生クラスがそれらのほとんどを使用するため、配列内ではなく、この「古典的な方法」で記述したままにします。私が今問題を抱えている関数は、すべての double 型の変数を反復処理し、そのうちのいくつがゼロでないかを見つけてから、これらすべての変数の 1 つをランダムに選択する方法です。このクラスには何千ものインスタンスがあり、私が言ったように、これを拡張するクラスがあります。だから私は解決策に取り組んでいます。できれば疑似のようなものです:
nonzeros = 0
foreach doubleVarInClass variable
{
if (variable != 0)
nonzeros++;
}
if (nonzeros < parameter)
{
randomDoubleVarInClass = random.next(...);
}
私が考えていた1つの解決策は、HashMapを使用してすべての変数を保持することでしたが、これを使用するすべてのクラスを書き直す必要があり、パフォーマンスにどのように影響するかわかりません。 . パフォーマンスを恐れて、おそらく古典的な配列で何かを試す必要がありますか? 何もなければ、少なくとも変数名を保持したいと思います。これらの変数への参照を含む配列について考えたので、このように記述し続けることができますが、Java での値の受け渡しが原因で可能かどうかはわかりません。
また、そのうちのいくつがゼロでないか、または効率的な機能を持っているかについての情報を保持する構造があるのでしょうか?
私の問題を解決できる情報をありがとう:)