programing

primitive int 목록을 작성하시겠습니까?

projobs 2022. 10. 31. 23:04
반응형

primitive int 목록을 작성하시겠습니까?

다음과 같이 primitive int 또는 primitive의 목록을 Java로 작성하는 방법이 있습니까?

List<int> myList = new ArrayList<int>();

할 수 있을 것 같다List myList = new ArrayList();

이 목록에 "int"를 추가합니다.하지만 그러면 이 목록에 무엇이든 추가할 수 있습니다.

int 배열을 생성하여 목록으로 변환하거나 Integer 객체 목록을 작성하는 방법밖에 없습니까?

Java에서 변수의 유형은 원시 유형 또는 참조 유형입니다.일반 형식 인수는 참조 형식이어야 합니다.원형이 확장되지 않기 때문에Object매개 변수 형식의 일반 형식 인수로 사용할 수 없습니다.

대신 를 사용합니다.Integer을 포장하는 클래스int:

List<Integer> list = new ArrayList<Integer>();

Java 7을 사용하는 경우 다이아몬드 연산자를 사용하여 이 선언을 단순화할 수 있습니다.

List<Integer> list = new ArrayList<>();

Java의 자동 박스를 사용하는 경우 기본 유형int가 될 것이다Integer필요할 때.

자동 박스는 Java 컴파일러가 원시 유형과 대응하는 객체 래퍼 클래스 간에 수행하는 자동 변환입니다.

따라서 다음 사항이 유효합니다.

int myInt = 1;
List<Integer> list = new ArrayList<Integer>();
list.add(myInt);

System.out.println(list.get(0)); //prints 1

Java Collection Framework를 사용할 때 기본 유형을 포함할 수 있는 컬렉션은 없습니다.

단, Trove, Colt, Fastutil, Guava와 같은 원시 유형을 지원하는 다른 Java 컬렉션이 있습니다.

Trove Library가 사용되는 경우의 ints 배열 리스트의 예를 다음에 나타냅니다.

 TIntArrayList list= new TIntArrayList();

Java 컬렉션의 정수 배열 목록과 비교하여 이 목록의 성능은 대응하는 정수 래퍼 클래스에 대한 자동 박스/언박스가 필요하지 않으므로 훨씬 우수합니다.

primitive int 목록 또는 Java에서 primitive 목록을 만드는 방법이 있습니까?

아니, 그럴 수 없다.다음과 같은 참조 유형 목록만 생성할 수 있습니다.Integer,String또는 커스텀 타입을 지정합니다.

할 수 있을 것 같다List myList = new ArrayList();이 목록에 "int"를 추가합니다.

추가할 때int이 리스트에는, 자동적으로 박스로 표시됩니다.Integer래퍼 타입.단, 새로운 코드에서는 raw 타입 리스트 또는 해당 범용 타입을 사용하는 것은 좋지 않습니다.

이 목록에는 무엇이든 추가할 수 있습니다.

물론 그것은 생활자를 사용하는 것의 단점입니다.당신은 고양이, , 호랑이, 공룡을 모두 한 용기에 담을 수 있습니다.

int 배열을 생성하여 목록으로 변환하는 것이 유일한 옵션입니다.

그 경우, 또한, 당신은 그것을 얻을 것이다.List<Integer>단지. 당신이 만들 수 있는 방법은 없습니다.List<int>또는 모든 원초적인 것.

어쨌든 당신은 신경 쓰지 말아야 해요.에서조차List<Integer>를 추가할 수 있습니다.int원시 활자아래 예시와 같이 자동으로 박스화 됩니다.

List<Integer> list = new ArrayList<Integer>();
list.add(5);

Apache 프레임워크에서 ArrayIntList를 사용해 보십시오.원시 int를 유지할 수 있다는 점을 제외하면 배열 목록과 동일하게 작동합니다.

자세한 내용은 이쪽 -

https://commons.apache.org/dormant/commons-primitives/apidocs/org/apache/commons/collections/primitives/ArrayIntList.html

이건 불가능해.Java 사양에서는 제네릭스에서 프리미티브를 사용할 수 없습니다.단, 다음과 같이 만들 수 있습니다.ArrayList<Integer>및 콜add(i)한다면i복싱 덕분이네요

이클립스 컬렉션에서 사용할 수 있는 프리미티브 컬렉션을 사용할 수 있습니다.Eclipse 컬렉션에는List,Set,Bag그리고.Map모든 원초적 요소를 대상으로 합니다.원시 컬렉션의 요소는 원시 요소로 유지되며 복싱은 수행되지 않습니다.

IntList는 다음과 같이 초기화할 수 있습니다.

MutableIntList ints = IntLists.mutable.empty();

에서 변환할 수 있습니다.List<Integer>로.IntList다음과 같습니다.

List<Integer> integers = new ArrayList<>();
MutableIntList ints = ListAdapter.adapt(integers).collectInt(each -> each);

주의: 저는 이클립스 컬렉션에 기고하고 있습니다.

컬렉션에서는 참조 유형 또는 will카드를 지원하는 제네릭을 사용합니다.단, 다음 명령어를 사용할 수 있습니다.Integer포장지

List<Integer> list = new ArrayList<>();

Android 개발을 위해 Java를 사용할 때는 다음을 사용하는 것이 좋습니다.SparseIntArray사이의 자동 박스를 방지하다int그리고.Integer.

자세한 내용은 다음 웹 사이트를 참조하십시오.SparseIntArrayAndroid 개발자 설명서 및 Android에서의 자동 상자에 대한 좋은 설명에 링크 설명을 여기에 입력하십시오.

Integer[] 어레이를 int[] 어레이로 변환하는 방법이 있습니까?

자바 코어 라이브러리에서 이러한 중대한 누락은 내가 작업하는 거의 모든 프로젝트에서 발생하는 것 같다.또한 Trove 라이브러리가 편리한 만큼 LGPL 라이브러리를 정적으로 링크하는 Android 앱의 LPGL을 충족하기 위한 정확한 요건을 해석할 수 없습니다(프리암블에서는 OK, 본문에서는 동일하지 않은 것 같습니다).그리고 이러한 수업을 듣기 위해 Apache 소스를 뒤지는 것은 매우 불편합니다.더 나은 방법이 있을 거야

발할라 프로젝트의 JEP 402가 허락을 해주겠다고 약속했습니다.그들은 래퍼 클래스를 모두 없앨 것이고, 이것은 더 이상 복싱과 언박싱을 하지 않는다는 것을 의미한다.

..그러니까 조심해.

Java Collection은 오브젝트만의 컬렉션이어야 합니다.

List<Integer> integerList = new ArrayList<Integer>();

정수는 원시 데이터 형식 int의 래퍼 클래스입니다.

JAVA 래퍼 클래스에서 더 많은 정보를 얻을 수 있습니다.

integerList를 직접 저장하여 integerList에서 가져올 수 있습니다. integerList.add(intValue); int intValue = integerList.get(i)

언급URL : https://stackoverflow.com/questions/18021218/create-a-list-of-primitive-int

반응형