2012-08-09 17 views
6

W poniższym kodzie wywołuje element dokładnie jeden raz. Jak mogę go wydrukować "to jest ostatni element listy", kiedy wszystko zostało usunięte i pozostaje tylko jeden element.Pobierz ostatni element w tablicy listy

ArrayList<String> Responselist = new ArrayList<String>(); 
Responselist.add(CommentResponse()); 
Responselist.add(TriviaResponse()); 
Responselist.add(CriticResponse()); 
String[] SelectRand = new String [3]; 

for (int i = 0; i < SelectRand.length; ++i) 
{ 
    int rnd = (int) (Math.random() * Responselist.size()); 
    SelectRand[i] = Responselist.get(rnd); 
    Responselist.remove(rnd); 
} 

for (String x : SelectRand) 
{ 
    if (!(Responselist.isEmpty())) 
    { 
     System.out.println(x); 
    } 
} 
+0

dostać (0)? ... Czy to jest prawdziwe pytanie? –

+0

Zwykle jest to konwencja w java - że niestatyczne pola i identyfikatory zmiennych lokalnych zaczynają się od małej litery. Staraj się postępować zgodnie z tą konwencją, dzięki czemu Twój kod będzie bardziej czytelny dla innych programistów java. – amit

+0

Myślę, że to było fajne, samo pytanie jest konkurencją polegającą na wykryciu błędu. Znalazłem 4 problemy (patrz poniżej); ale jestem pewien, że jest ich o wiele więcej :). – mihaisimi

Odpowiedz

1

To powinno wystarczyć Chyba:

if (list.size() == 1) { 
    System.out.println(list.get(list.size() - 1)) // or just .get(0) of course... 
} else { 
    System.out.println("List is empty or bigger than one") 
} 
6

Można dokonać kontroli nad wielkością ArrayList, id est

if (arraylist.size()==1){ 
    System.out.println("this is the last element in the arraylist"); 
} 

i jeśli chcesz wydrukować ostatni element, do którego można uzyskać dostęp jako (indeks = 0 w przypadku, gdy jest to tylko jeden element)

arraylist.get(arraylist.size()-1); 
1

Można rozwiązać to z następujących if-skonstruować

if(responseList.size() == 1) 
{ 
System.out.println("this is the last element in the arraylist") 
} 

Należy zacząć zmienną z małymi literami.

-1

spróbować i trzymać się konwencji w java

zamiast

ArrayList<String> Responselist = new ArrayList<String>(); 

Następnie kodu do interfejsu zamiast konkretnej klasy.

List<String> Responselist = new ArrayList<String>(); 

także za pomocą standardowych zmiennych Java przypadek wielbłąd więc byłoby

List<String> responselist = new ArrayList<String>(); 

myślę drugi asnswer są wystarczające, aby odpowiedzieć ci oryginalnego zapytania.

Powiązane problemy