Не получается добавить элементы одного ArrayList в другой

263
27 ноября 2017, 18:31

Массив arr=asd, asd, asd, ;, fgf

ArrayList Que=new ArrayList();
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
razdelN=0;
razdelK=Element(arr,2);
for (i=razdelN;i<=razdelK;i++){
     Que.add(arrayList.get(i));
}
private int Element(String[] arr,int i){
    for (int j = i; j < arr.length; j++) {
        if (arr[j].equals(" ;")) {
            ch=j+1;
            break;
        }
    }
    return ch;
}

Приложение вылетает из-за Que.add(arrayList.get(i));

Answer 1

Пример кода, который находит в строке точку с запятой и копирует так как делали вы данные из одного ArrayList в другой ArrayList до точки с запятой.

import java.util.ArrayList;
import java.util.Arrays;
/**
 * Created on 25.11.2017.
 */
public class Main {
    static ArrayList<String> que = new ArrayList(); //имена переменныз в Java принято начинать с маленькой буквы, по этому Que -> que
    static String[] arr =  {"asd","asd","asd"," ;","fgf"};
    static ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
    public static void main(String[] args) {
        int ch = getElementPosition(arr, 0);
        for (int i = 0; i <= ch; i++) {
            que.add(arrayList.get(i));
        }
        // вывод результата:
        for(String str : que) { //Проход по всему ArrayList и вывод
            System.out.println(str);
        }
    }

    public static int getElementPosition(String[] inputString, int startPosition){
        if(startPosition > inputString.length || startPosition < 0){
            return -1; // стартовая позиция вне диапазона массива. Поиск ничего не нашел
        }
        for (int i = startPosition; i < inputString.length; i++) {
            if (arr[i].equals(" ;")) {
                return  i;
            }
        }
        return -1; // если поиск не увенчался успехом
    }
}

Справедливости ради следует заметить, что данную задачу можно решить намного проще

READ ALSO
Работодатель требует : понимание многопоточности . Что это может в себя включать?

Работодатель требует : понимание многопоточности . Что это может в себя включать?

Ну начал я писать программы и дойдя до многопоточности ничего сложного в этом не увиделНу да программа работает в несколько потоков и главное...

303
ООП, Пример наследования на Java [требует правки]

ООП, Пример наследования на Java [требует правки]

Необходим хороший пример ООП на Java с несколькими уровнями наследования и всеми модификаторами доступа (private, default, protected, public)Есть просто понимание...

241
Java не могу подключиться к БД (jdbc mysql maven 6.0.6)

Java не могу подключиться к БД (jdbc mysql maven 6.0.6)

Доброго времениНовичок, пытаюсь законнекнится к БД

314
Требуется ли синхронизация get в ArrayList?

Требуется ли синхронизация get в ArrayList?

Имеется коллекция, два потока проходятся по ней в цикле for each и распечатывают данные на консольУдаление или изменение элементов листа они...

298