[Ava]Final配列に整列
概要
私は冊の本を読んで、太っていることに気づいた. n.問題以下のコードは正常に動作していますか? まず蒸し犬を見たら、正常に運行できると言いました. n/a原理まず、参照タイプ変数と元のタイプ変数を理解します. 私たちが基本的に知っているint、float、bool、long...類似の変数は元のタイプの変数です. 参照タイプは、オブジェクト、アレイ、Integer/LongなどのWrapperクラスに相当します. さらに、finalの参照タイプ変数は したがってnumbers変数は異なる配列を指すことができず,配列内部の値しか修正できない.適用
では、内部の値さえ変更できない配列はありますか? の配列では見つかりませんが、リストでは可能なようです. Collections.unmodifiableListからsort不可リストを作成できます.
Integer/LongのようなWrapperクラスもリファレンスタイプなので、最終的に宣言できますか? の正解から言えば、不可能です. は、Boxing、Unboxingの概念を理解する必要がある. 簡単に言えば、IntegerのようなWrapperクラスでは、値を直接使用することはできません. Wrapperクラスに値を書き込むには、intなどの元のタイプ(Primitive Type)を使用してUnboxingを行う必要があります. Unboxingを行った瞬間、この変数が指すRapperanceが変化するので不可能! ソース
天災防止軸開発者コメント
私は
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
final int[] numbers = {-3, -5, 1, 7, 4, -2};
Arrays.sort(numbers); // final인데 정렬이??
}
}
正解다른 주소를 가리킬 수 없을 뿐, 그 대상 인스턴스 객체의 값을 수정하지 못한다
の意味ではありません.では、内部の値さえ変更できない配列はありますか?
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
/*final int[] numbers = {-3, -5, 1, 7, 4, -2};
Arrays.sort(numbers);*/
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(-1);
list.add(3);
list.add(9);
list = Collections.unmodifiableList(list);
Collections.sort(list);
}
}
Integer/LongのようなWrapperクラスもリファレンスタイプなので、最終的に宣言できますか?
天災防止軸開発者コメント
Reference
この問題について([Ava]Final配列に整列), 我々は、より多くの情報をここで見つけました https://velog.io/@jkh9615/Java-Final-배열과-정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol