Java ArrayList indeks

0

Witam

Mój program ma wypisywać np. 7 linijek w postaci napisowego ciągu Fibonacciego (mają dodawać się stringi a nie liczby). Czyli np. jak podamy 8 i 9 to ma wypisać:

8 9 89 989 89989 98989989 8998998989989

Wygląda na to, że Java nie obsługuje indeksów w ArrayList, np. a[-2] + a[-1]. Czy da się jakoś inaczej zapisać tę linijkę?

import java.util.*;

class Arr {
	public static void main(String args[]) {

		ar();
	}

	public static void ar() {
		{
			System.out.print("Podaj x: ");
			String x = new Scanner(System.in).nextLine();
			System.out.print("Podaj y: ");
			String y = new Scanner(System.in).nextLine();

			List<String> list = new ArrayList<String>();
			list.add(x);
			list.add(y);

			for (int i = 0; i < 5; i++)
				list.add(x[-2] + x[-1]);              //ta linijka jest źle

			for(String item : list)
				System.out.print(item);
		}

	}
}
1

Co niby chcesz osiągnąć odwołując się do ujemnych indeksów?

0

chyba troche nie wiesz co robisz. do wyciagania elementow z arraylist sluzy metoda get, przy czym srednio ci to pomoze w rozwiazaniu problemu, bo masz sporo innych bledow w kodzie. http://lmgtfy.com/?q=java+fibonacci

0
twonek napisał(a):

Co niby chcesz osiągnąć odwołując się do ujemnych indeksów?

Ten sam program np. w Pythonie działa poprawnie

a = raw_input("Wpisz a: ")
b = raw_input("Wpisz b: ")

x = [a, b]

for i in xrange(5):    
    x.append(x[-2] + x[-1])
for el in x:
    print el

chciałem go tylko przepisać na Javę

0

Ale python to nie java i nie umożliwia cyklicznych odwołań do list za pomocą ujemnych indeksów. Jak chcesz odwołać sie do elementu k-tego od końca w tablicy to piszesz x[x.length()-1-k]. Pamiętaj też że java nie pozwala na traktowanie stringów ani list jako tablic więc i nie pozwala operować na nich za poomcą []

1 użytkowników online, w tym zalogowanych: 0, gości: 1