Java ArrayList indeks

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ę?

Kopiuj
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);
		}

	}
}
twonek
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 2 lata
  • Postów:2500
1

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

katelx
  • Rejestracja:około 10 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Hong Kong
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

edytowany 1x, ostatnio: katelx
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

Kopiuj
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ę

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
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ą []


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.