2012-08-09 13 views
6

Im folgenden Code ruft es ein Element genau einmal. Wie kann ich den Ausdruck "Dies ist das letzte Element in der Arrayliste" machen, wenn alles entfernt wurde und nur noch ein Element übrig ist?Holen Sie sich das letzte Element in Arraylist

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

bekommen (0)? ... Ist das eine echte Frage? –

+0

Es ist normalerweise die Konvention in Java, dass nicht statische Felder und lokale Variablenbezeichner mit einem Kleinbuchstaben beginnen. Versuchen Sie, dieser Konvention zu folgen. Dadurch wird Ihr Code für andere Java-Programmierer lesbarer. – amit

+0

Ich denke eigentlich, das war cool, die Frage selbst ist ein Fehlerfindungswettbewerb. Ich habe 4 Probleme gefunden (siehe unten); aber ich bin sicher, dass es viel mehr gibt :). – mihaisimi

Antwort

1

Das sollte es tun ich denke:

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

Sie eine Kontrolle über die Größe des Arraylist machen, id est

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

und wenn Sie möchten, die letzte drucken Element Sie können darauf zugreifen als (Index = 0, wenn es nur ein Element ist)

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

Sie können dies mit dem folgenden lösen if-Konstrukt

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

Sie sollten die Variable mit einem Kleinbuchstaben beginnen.

-1

Versuchen und halten Sie sich an Konventionen in java

statt

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

Dann Code an eine Schnittstelle anstatt eine konkrete Klasse.

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

auch von Standard-Java-Variablen sind Kamel Fall so wäre es

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

sein denke ich, das andere asnswer ausreichend sind Ihnen ursprüngliche Abfrage zu beantworten.

Verwandte Themen