Как вставить элементы в середине LinkedList с помощью ListIterator - PullRequest
3 голосов
/ 26 января 2012

Я хочу создать пустой LinkedList и, используя ListIterator, добавить целые числа в список, всегда вставляя их в середину списка. Как сделать это наиболее эффективно.

Спасибо

Ответы [ 2 ]

2 голосов
/ 18 июля 2012

Как то так? (это отрывок из «Размышления Брюса Экеля на Яве?») Вопрос об эффективности в любом случае остается открытым ...

public class Excersize14 {
    public static void main(String[] args) {
        LinkedList< Integer > list = new LinkedList<Integer>() ;

            getIterator( list ).add( 10 );
            getIterator( list ).add( 20 );
            getIterator( list ).add( 30 );
            getIterator( list ).add( 40 );
            getIterator( list ).add( 50 );
            getIterator( list ).add( 60 );

            System.out.println( list );
    }

    private static ListIterator<Integer> getIterator(LinkedList<Integer> list) {
            return list.listIterator( list.size() / 2 );
    }
}
1 голос
/ 26 января 2012

Вставка элементов в LinkedList по индексу по своей сути неэффективна.Используйте ArrayList или что-то еще вместо LinkedList, если вам нужно вставить индекс.

Но если вам нужна информация об использовании ListIterators, посмотрите здесь:

http://www.java -examples.com / iterate-through-elements-java-connectedlist-using-listiterator-example

В противном случае вы можете просто подумать о

myLL.add(i,val)

Для получения дополнительной информации см. Java API.

http://docs.oracle.com/javase/6/docs/api/java/util/LinkedList.html

...