আপনি যদি ব্যবহার করছেন জাভা-8 এটি করার আরও একটি উপায় আছে।
int[] arr = list.stream().mapToInt(i -> i).toArray();
এটি যা করে তা হ'ল:
Stream<Integer>
তালিকা থেকে একটি পেয়ে
- একটি প্রাপ্তির
IntStream
নিজেই (পরিচয় ফাংশন) প্রতিটি উপাদান ম্যাপিং, আনবক্সিং দ্বারা int
প্রতিটি দ্বারা মূল্য রাখা Integer
বস্তু (জাভা 5 যেহেতু স্বয়ংক্রিয়ভাবে সম্পন্ন)
int
কল করে অ্যারে পেয়েtoArray
আপনি intValue
কোনও পদ্ধতি রেফারেন্সের মাধ্যমেও স্পষ্টভাবে কল করতে পারেন , যেমন:
int[] arr = list.stream().mapToInt(Integer::intValue).toArray();
এটি উল্লেখ করারও দরকার যে তালিকায় NullPointerException
আপনার কোনও null
রেফারেন্স থাকলে আপনি একটি পেতে পারেন । এই জাতীয় স্ট্রিম পাইপলাইনে ফিল্টারিং শর্ত যুক্ত করে সহজেই এড়ানো যায়:
//.filter(Objects::nonNull) also works
int[] arr = list.stream().filter(i -> i != null).mapToInt(i -> i).toArray();
উদাহরণ:
List<Integer> list = Arrays.asList(1, 2, 3, 4);
int[] arr = list.stream().mapToInt(i -> i).toArray(); //[1, 2, 3, 4]
list.set(1, null); //[1, null, 3, 4]
arr = list.stream().filter(i -> i != null).mapToInt(i -> i).toArray(); //[1, 3, 4]