2014-02-01 5 views
1

Я пытаюсь добавить массив целых чисел в связанный список. Я понимаю, что для примитивных типов нужна оболочка, поэтому я пытаюсь добавить свои элементы int в качестве целых. Заранее спасибо.Добавить примитивный массив в связанный список

int [] nums = {3, 6, 8, 1, 5}; 

LinkedList<Integer>list = new LinkedList<Integer>(); 
for (int i = 0; i < nums.length; i++){ 

    list.add(i, new Integer(nums(i))); 

Извините, на мой вопрос: как добавить эти элементы массива в свой LinkedList?

+0

Что вы хотите сказать? – Prince

+0

вы можете попробовать list.add (новый Integer (nums (i))), но мне кажется, что это так. Ваш вопрос в том, есть ли однострочный способ добавить этот массив примитивов в коллекцию целых чисел? – Leo

+3

Кстати, вы также можете просто «LinkedList list = new LinkedList (Arrays.asList (nums));' –

ответ

5

Вы делаете это правильно, за исключением изменения этой линии

list.add(i, new Integer(nums(i))); // <-- Expects a method 

в

list.add(i, new Integer(nums[i])); 

или

list.add(i, nums[i]); // (autoboxing) Thanks Joshua! 
+0

Спасибо - отлично работает – Tuxino

+0

С автоматическим боксом вам не нужно даже создавать новый целочисленный объект –

+0

@JoshuaTaylor Вы правы! – Prince

1

Если вы используете Integer массив вместо int массива, вы можете преобразовать его короче.

Integer[] nums = {3, 6, 8, 1, 5};  
final List<Integer> list = Arrays.asList(nums); 

Или, если вы хотите использовать только ИНТ [] вы можете сделать это следующим образом:

int[] nums = {3, 6, 8, 1, 5}; 
List<Integer> list = new LinkedList<Integer>(); 
for (int currentInt : nums) { 
    list.add(currentInt); 
} 

И использовать List вместо LinkedList в левой стороне.

+0

Спасибо Ashot, нас попросили использовать массив int для решения проблемы, поэтому ваш второй ответ был бы приемлемым в этом случае. – Tuxino

Смежные вопросы