たとえば、次のメソッドがあるとします。
public double[] getCoord(){
return coord;
}
public double getCoord(int variable){
return coord[variable];
}
電話したほうがいいのかな
object.getCoord()[1]
また
object.getCoord(1)
なぜ?
たとえば、次のメソッドがあるとします。
public double[] getCoord(){
return coord;
}
public double getCoord(int variable){
return coord[variable];
}
電話したほうがいいのかな
object.getCoord()[1]
また
object.getCoord(1)
なぜ?
パフォーマンスの違いはありませんが、Java 配列は常に可変であるため、2 番目の方法ははるかに優れた API を提供します。最初の API を使用すると、ユーザーは書き込みを行うことができます
object.getCoord()[1] = 12.345;
背後でオブジェクトの内部を変更します。これは決して良いことではありません。悪意のないユーザーでも、単純に誤って意図しないことを実行する可能性があります。
性能的には申し分ありません。最初のメソッドは、コピーではなく、配列への参照を返します。
つまり、2 番目の方法は、配列がクラス外で変更されるのを防ぎます。
いいえ、添字演算子 ( ) を使用すると、Java は配列全体を読み取りません[]
。アクセサーメソッドを使用して最初に配列を取得し、次に配列にインデックスを付けるのではなく、同じことを行うメソッドを呼び出す方が良いでしょうか。おそらく無視できます。関数を呼び出していずれかの方法で結果を返すというオーバーヘッド (最小限の注意) が発生します。