Индексирование за пределами границ (проблема перестановок CSS) java

0

Вопрос

import java.util.*;
import java.io.*;
public class cses6 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        String m = "";

        ArrayList<Integer> even = new ArrayList<Integer>();
        ArrayList<Integer> odd = new ArrayList<Integer>();
        ArrayList<String> stringjoin = new ArrayList<String>();
        if (n == 1) {
            System.out.println(n);
        }
        if (1 < n && n< 4) {
            System.out.println("NO SOLUTION");
        }

        even.set(0, 4);
        even.set(1, 2);
        odd.add(0, 1);
        
        for (int i = 1; i < n+1 && i > 4; i++) {
            if (i % 2 == 0) {
                even.add(i);
            } else {
                odd.add(i);
            }


        }
        odd.addAll(even);

        for (int i = 1; i < odd.size(); i++) {
            m = Integer.toString(odd.get(i));
            stringjoin.set(i,m);
        }

        System.out.println(stringjoin.toString().replace(", ", " ").replace("[", "").replace("]",""));

        
    }
}

Моя проблема в том, что: Ввод

Единственная строка ввода содержит целое число n.

Выход

Выведите красивую перестановку целых чисел 1,2,...,n. Если существует несколько решений, вы можете распечатать любое из них. Если решений нет, выведите "НЕТ РЕШЕНИЯ".

Однако я получаю ошибку индекса за пределами границ. Какая часть моего кода неверна и как я могу устранить ошибку? Ошибка возникает в строке 19

java permutation
2021-11-24 00:40:31
1

Лучший ответ

-1

Здесь неправильный код

even.set(0, 4);

и причина здесь

    public E set(int index, E element) {
        rangeCheck(index);

        E oldValue = elementData(index);
        elementData[index] = element;
        return oldValue;
    }

    private void rangeCheck(int index) {
        if (index >= size)
            throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
    }

Вы не можете использовать set(int index, E element) метод для пустого списка массивов

2021-11-24 00:52:28

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................