2012-08-09 25 views
6

Nel codice seguente, chiama un elemento esattamente una volta. Come posso stamparlo "questo è l'ultimo elemento dell'array" quando tutto è stato rimosso e rimane solo un elemento.Ottieni l'ultimo elemento nell'arrayist

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

ottenere (0)? ... è una domanda vera? –

+0

Di solito è la convenzione in Java: i campi non statici e gli identificatori delle variabili locali iniziano con una lettera minuscola. Cerca di seguire questa convenzione, renderà il tuo codice più leggibile per gli altri coder java. – amit

+0

In realtà penso che sia stato bello, la domanda in sé è una competizione per trovare bug. Ho trovato 4 problemi (vedi sotto); ma sono sicuro che ce ne sono molti altri :). – mihaisimi

risposta

1

Questo dovrebbe farlo immagino:

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

si può fare un controllo sulle dimensioni del ArrayList, id est

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

e se si desidera stampare l'ultimo elemento puoi accedervi come (index = 0 nel caso in cui sia solo un elemento)

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

È possibile risolvere questo con il seguente caso-costruire

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

Si dovrebbe iniziare la variabile con una lettera minuscola.

-1

Prova e bastone alle convenzioni in java

invece di

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

Poi codice per un'interfaccia piuttosto che una classe concreta.

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

anche da variabili standard di Java sono caso cammello quindi sarebbe

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

Credo che l'altra asnswer sono sufficienti per rispondere a voi query originale.

Problemi correlati