注册 登录
编程论坛 J2EE论坛

两种代码有什么区别

cai410579517 发布于 2013-09-17 21:09, 2125 次点击
userdao dao= new userdao();
            ArrayList<User> list=dao.checkUser();
            for (int i = 0; i < list.size(); i++) {
              User u=list.get(i);
               System.out.println(u.getUsername());
               
             }
 userdao dao=new userdao
 ArrayList<User> list=dao.checkUser();
 User u=list.get(1);
 System.out.println(u.getUsername());

这两种有什么曲别,为什么 第一种就不会有错 而第二种就会出错
4 回复
#2
java小蚂蚁2013-09-18 09:32
打印一下,看你get(1)得到的值不就知道了
第一种,你是循环打印了所有的值,第二种就打印一个,如果list为空的话,这是不是会产生空指针异常。另外这个怎么的你也该写个try catch吧
#3
java小蚂蚁2013-09-18 09:34
建议第一种。或者要么你什么确定那个里面都有哪些值。在什么位置,不过话说即使这样,如果突然出现其他的意外情况,比如网断了等到,还是会有问题,建议捕获一个异常信息
#4
3037709572013-09-18 10:33
userdao dao= new userdao();

ArrayList<User> list=dao.checkUser();
for (int i = 0; i < list.size(); i++) {
      User u=list.get(i);
      System.out.println(u.getUsername());              
}
这样做的好处在于不管list中有几个User对象,都可以打印出来,要是没有就不打印了。
实际上list中只有一个User对象。


userdao dao=new userdao();
ArrayList<User> list=dao.checkUser();
User u=list.get(1);//问题出在这个地方了,如果list中只有一个User对象,那么就不存在list.get(1),而是list.get(0).
System.out.println(u.getUsername());

正确做法应该是:
userdao dao=new userdao();
ArrayList<User> list=dao.checkUser();
if(list.size()>0)
{
    User u=list.get(0);//取出第一个User对象就可以了。
    System.out.println(u.getUsername());
}
#5
cai4105795172013-09-18 13:41
问题已解决了 但是我用了是第二种方法  如果我只是打印值的话我会用第一种 但是我要取user对象里面的值进行判断比较  所以只能用第一种方法了
1