2012-08-09 1106 views
6

在下面的代码中,它只调用一次元素。我怎样才能打印出“这是ArrayList中的最后一个元素”,当一切都被删除,并且只剩下一个元素。获取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

get(0)? ...这是一个真正的问题吗? – 2012-08-09 08:16:00

+0

它通常是java中的约定 - 非静态字段和局部变量标识符以小写字母开头。试着遵循这个约定,它会使你的代码更加易读,适用于其他java代码。 – amit 2012-08-09 08:16:01

+0

我其实觉得这很酷,这个问题本身就是一个发现竞争的bug。我发现了4个问题(见下文);但我相信还有更多:)。 – mihaisimi 2012-08-09 08:37:16

回答

1

这应该做到这一点我想:

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

您可以在数组列表的大小控制,ID EST

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

,如果你要打印的最后元素,你可以访问它(索引= 0,如果它只是一个元素)

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

您可以用下面的解决这个如果,构建

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

你应该以小写开始的变量。

-1

尝试和墨守成规在Java

,而不是

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

然后代码的接口,而不是一个具体的类。

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

此外,通过标准的Java变量是骆驼所以这将是

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

我想其他asnswer足以回答你原来的查询。

相关问题