2015-03-09 9 views
-1

Как добавить числа в ArrayList, но сохранить порядок, в котором они были добавлены?Добавление целых чисел в список массивов, сохранение порядка ввода

Ex) Arraylist содержит: [5, 3, 9] ... Я хочу добавить [1, 2, 3], чтобы внести измененный список = [1, 2, 3, 5, 3, 9]

Ex2) Список_массивов содержит: [] ... Я хочу, чтобы добавить [1, 2, 3], чтобы измененный список = [1, 2, 3]

Я буду использовать один статический ArrayList в все время

Пользователь вводит команду из командной строки, вводя: «X1 X2 X3 ... Xn», где «a» - это команда, а X1 - Xn - неизвестное количество целых чисел, которые необходимо добавить к списку

+0

Вы пытаетесь это? или просто добавить материал к началу? –

+2

Сохранение заказа, которое они добавили, будет означать, что новые предметы будут включены в конец. –

ответ

6

Я не уверен, если я понимаю ваш вопрос полностью, но вы пробовали, используя просто:

arrayList.addAll(0, newDataUserProvided); 

Это должно сделать трюк - новые элементы всегда будут добавлены в начале списка.

0

Для ArrayList<T> метод void add(int index, T e) фактически вставляет элемент e по индексу index. Индекс должен быть между [0, длина] Для того, чтобы достичь того, чего вы хотите, просто сделать:

ArrayList<Integer> myList; // contains [5, 3, 9] 
myList.add(0, 1); 
myList.add(1, 2); 
myList.add(2, 3); 
// myList is now [1, 2, 3, 5, 3, 9] 

List это упорядоченная коллекция, это означает, что она сохраняет определенный порядок элементов. Для ArrayList метод void add(T e), добавьте элемент в конце списка, void add(int index, T e) вставьте элемент в указанное положение.

Для вашей проблемы вам может понадобиться добавить элемент в конец списка.

0

Интерфейс списка ans aller implémentations используется для управления элементами по положению, а не путем сортировки. мой list.get (3)

Но если вы хотите иметь структурированный список, который реализует сортировку у вас есть буксирные решения:

  1. Использовать SortedSet, этот набор своего рода заданных элементов от естественной сортировки (метод сравнения), который реализуется с целыми значениями.
  2. Используйте collection.sort() для сортировки окончательного списка (это решение плохо, когда у вас есть большой список, потому что это будет случаем А проблемы с производительностью)

    Список MyList = новый ArrayList(); myList.add (2); myList.add (1); myList.add (3); Collections.sort (myList); для (Integer i: строки) {System.out.println (i); } // Выводит 1,2 и 3

  3. Оставить свой SortedList

0

Если вы хотите иметь упорядоченную коллекцию, которая может содержать дубликат. Вы должны использовать List. Есть два орудия для этого

  1. ArrayList

  2. LinkedList

Если вы хотите упорядоченный набор на основе вставок, которые не могут содержать дубликаты. Вы должны использовать один из инструментов Set, который составляет LinkedHashSet. Есть один реализует

В Java 8, вы можете использовать flatMap для создания потока из потока списков

enter image description here

Код:

List<Integer> list1 = Arrays.asList(1,2,3); 
    List<Integer> list2 = Arrays.asList(4,5,6); 
    List<Integer> finalList = Stream.of(list1 , list2) 
            .flatMap(listF -> listF.stream()) 
            .collect(Collectors.toList()); 
    System.out.println(finalList); 

Ouput:

[1, 2, 3, 4, 5, 6] 
Смежные вопросы