• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wydruk zawartości tablicy typu String

Object Storage Arubacloud
0 głosów
127 wizyt
pytanie zadane 1 stycznia 2018 w Java przez rubesom Obywatel (1,690 p.)

Cześć

Mam taki prosty kod:

	private String[] zmienna2;
		public String getZmienna2()
	{
		String temp = "";
		for(int i = 0; i < zmienna2.length; i++)
		{
			temp += zmienna2[i] + " ";
		}
		return temp;
	}

Przy niezmienności Stringów, tym kodem "temp += zmienna2[i] + " ";" przy każdym powtórzeniu pętli for zostanie stworzony nowy String? (np. przy założeniu, że tablica "zmienna2" ma 5 elementów)

Mam jeszcze pytanie - czemu JVM każe mi zainicjować zmienną "temp", czemu nie może być ona pusta?

2 odpowiedzi

+1 głos
odpowiedź 1 stycznia 2018 przez JAKUBW Nałogowiec (33,470 p.)
wybrane 1 stycznia 2018 przez rubesom
 
Najlepsza

Tak, tworzona jest masa pomocniczych Stringów co jest szalenie niewydajne.

Użyj StringBuilder:

String arrayToString(String[] array) {
StringBuilder builder = new StringBuilder();
for (String s: array){
builder.append(s);
builder.append(' ');
}
return builder.toString();
}

JVM każe ci zainicjować zmienną temp, ponieważ następuje z niej odczyt w linijce:

temp += zmienna2[i] + " ";

To w rzeczywistości:

temp = temp + (zmienna2[i] + " ");

Zapisujesz do niej coś, ale najpierw odczytujesz

+1 głos
odpowiedź 1 stycznia 2018 przez Tomasz90 Nałogowiec (25,140 p.)
Każda operacja na stringu tworzy nowy String. Do operacji w pętli lepiej używać StringBuildera, bo jak będziesz miał bardzo wiele iteracji w pętli to wydajność będzie dużo gorsza jak co chwilę będziesz tworzył nowy obiekt.

Lokalne zmienne w Javie trzeba inicjalizować. Pola w klasach otrzymują domyślną wartość.

Podobne pytania

0 głosów
3 odpowiedzi 362 wizyt
+1 głos
1 odpowiedź 130 wizyt
0 głosów
2 odpowiedzi 1,092 wizyt
pytanie zadane 12 lipca 2017 w Java przez embid123 Użytkownik (630 p.)

92,537 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...