Не понимаю принцип работы с LikedList в Java [требует правки]

225
13 апреля 2018, 18:20

Задание.

Создайте однонапрямленный список и удалите все элементы между элементами со значениями "X" и "Z". напечатать оба списка.

Я первокурсник, обьясните пожалуйста суть ошибки как для чайника. Мой код:

import java.util.LinkedList;
import java.util.Scanner;
public class ApLab4 {
    static String scanner(){
        Scanner userInput = new Scanner(System.in);
        System.out.println("Write a string of symbols");
        String userInputString = userInput.nextLine();
        return userInputString;
    }
    public static void main(String[] args) {

        LinkedList<String> list = new LinkedList<String>();
        list.add(scanner());
        System.out.println(list);
        System.out.println(list.contains('X'));
        if(list.contains("X") && list.contains("Z")){
            for (int i = list.indexOf("X") + 1; i < list.indexOf("Z") ; i++) {
                list.remove(i);
            }
        }
        System.out.println(list);
    }
}
Answer 1

Твоя ошибка в том что ты не заполнял список элементами, а добавлял один элемент и сразу проверял его на нахождения между x и z! Пользуйся отладчиком всегда и поймешь в чем ошибка! Попробуй такой вариант:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
public class ApLab4 {
    // Для примера пусть длинна списка будет 6
    private static final int listLength = 6;
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(
                new InputStreamReader(System.in));
        // Переменная для считывания и записи в список
        String string;
        // Создаем список LinkedList так как его скорость удаления/вставки выше чем у ArrayList
        LinkedList<String> linkedList = new LinkedList<>();
        // заполняем его символами
        for (int i = 0; i < listLength; i++) {
            string = reader.readLine();
            linkedList.add(string);
        }
        System.out.println("Изначальный вид списка: " + linkedList);
        // теперь удаляем элемнты между X Z
        if(linkedList.contains("x") && linkedList.contains("z")){
            for (int i = linkedList.indexOf("x") + 1; i < linkedList.indexOf("z") ; i++) {
                linkedList.remove(i);
            }
        }
        System.out.println(linkedList);
    }
}
READ ALSO
Конверт в RealmList

Конверт в RealmList

Никто не подскажет как можно правильно конвертить в RealmList<> например Map<String, String> ну или List<SomeClass>?

176
Передача данных ArrayList

Передача данных ArrayList

В приложении для android у меня есть три Activity, Activity1, Activity2, Activity3 все они открываются в таком же порядкеЯ пытаюсь передать из Activity1 данные ArrayList...

200
Результат не хочет каститься. NamedNativeQuery - SqlResultSetMapping

Результат не хочет каститься. NamedNativeQuery - SqlResultSetMapping

Собственно он не хочет работать:

195
Выдаёт ошибку при построении проекта на Андроид 4.4.2

Выдаёт ошибку при построении проекта на Андроид 4.4.2

Пытаюсь установить на планшет под Андроид 44

207