- ベストアンサー
double配列を戻り値としたメソッド
最近Javaを始めたのですが、あまり知識がなく勘で書いているため今回配列の戻り値でつまずいてしまいました。 プログラムは一応VB,C#,Cをそこそこ書けるだろうといったレベルだと思っています。 問題はタイトル通りなのですが、Tryの中にdouble[] doubFuv = Hunx((int)intpara); として、Hunx(同じクラスにstaticで宣言)は単純に配列を引数分作ってrundi[i] = Math.random();とし、最後にそのままreturn rundiしています。 ここでHunx内でprintlnして実行を確認すると正常に配列に値がはいているのですが、戻り値を受け取った側のdoubFuvには配列の中の幾つかが欠落(本来は0~1までの乱数のはずが、全体の3割に0.0が混入)してしまうといった今まで出会ったことのない状態になっています。 おそらくスレッドで何かぶつかっているのだと思いロックしてみようかと思いましたが、その方法もわからず途方に暮れています。 解決のヒントでもいいので、よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- pribaoutki
- ベストアンサー率0% (0/3)
回答No.5
- choconamacream
- ベストアンサー率44% (152/338)
回答No.4
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
- pribaoutki
- ベストアンサー率0% (0/3)
回答No.1
補足
返信が遅れてしまい申し訳ありませんでしたm(><)m いろいろ本などを漁って見たところ、JavaはCなどのように配列を引数として渡すとアドレス参照となり、 C#でいうref修飾子が適応されたみたいな状態になっていました。 そこで引数を一回コピーして処理をしてみるとすべて正常に走ることができました! 協力してくださった皆さんにはとても感謝しております。 ご指導ありがとうございましたm(_ _)m