次のようにJavaでプリミティブintまたはプリミティブのリストを作成する方法はありますか?
List<int> myList = new ArrayList<int>();
できるらしいList myList = new ArrayList();
このリストに「int」を追加します。しかし、これは、このリストに何でも追加できることを意味します。
私の唯一のオプションは、int の配列を作成してリストに変換するか、Integer オブジェクトのリストを作成することですか?
次のようにJavaでプリミティブintまたはプリミティブのリストを作成する方法はありますか?
List<int> myList = new ArrayList<int>();
できるらしいList myList = new ArrayList();
このリストに「int」を追加します。しかし、これは、このリストに何でも追加できることを意味します。
私の唯一のオプションは、int の配列を作成してリストに変換するか、Integer オブジェクトのリストを作成することですか?
いいえ、Java Collection Framework が使用されている場合、プリミティブ型を含むことができるコレクションはありません。
ただし、 Trove、Colt、Fastutil、Guavaなど、プリミティブ型をサポートする他の Java コレクションがあります。
Trove Library を使用した場合の int を含む arraylist の例は次のとおりです。
TIntArrayList list= new TIntArrayList();
このリストのパフォーマンスは、Java コレクションからの整数の ArrayList と比較すると、対応する整数ラッパー クラスへの自動ボックス化/ボックス化解除が必要ないため、はるかに優れています。
Apache フレームワークの ArrayIntList を使用してみてください。プリミティブ int を保持できることを除いて、arraylist とまったく同じように機能します。
詳細はこちら -
Eclipse Collectionsで使用可能なプリミティブ コレクションを使用できます。Eclipse コレクションには、すべてのプリミティブに対してList
、Set
、Bag
およびがあります。Map
プリミティブ コレクション内の要素はプリミティブとして保持され、ボックス化は行われません。
次のようにIntListを初期化できます。
MutableIntList ints = IntLists.mutable.empty();
List<Integer>
aから次のIntList
ように変換できます。
List<Integer> integers = new ArrayList<>();
MutableIntList ints = ListAdapter.adapt(integers).collectInt(each -> each);
注: 私は Eclipse Collections の寄稿者です。
Android 開発に Java を使用する場合は、 とのSparseIntArray
間のオートボクシングを防止するために使用することをお勧めします。int
Integer
詳細についてSparseIntArray
は、Android Developers のドキュメントを参照してください。また、Android でのオートボクシングの適切な説明については、ここにリンクの説明を入力してください。
Java コレクションは、オブジェクトのみのコレクションである必要があります。
List<Integer> integerList = new ArrayList<Integer>();
JAVA ラッパー クラスの詳細は こちら!
U は、integerList との間で int を直接保存および取得できます。
integerList.add(intValue);
int intValue = integerList.get(i)