集合ArrayList 希望各位大神帮帮小弟

在Java中怎么修改:
name=input.next();
for(DVDList d:list){
if(d.getName()==null){
System.out.println("无法查找到该DVD");
break;
}
else if(name.equals(d.getName()) && d.getState()==0){
System.out.println("该DVD未借阅 ");
break;
}
else if(name.equals(d.getName()) && d.getState()==1){

 d.setState(0);
                d.setDate(null);_
            System.out.println("归还成功");
            Date d1=new SimpleDateFormat("yyyy-MM-dd").parse(d.getDate());
            Date d2=new Date();//当前时间
            long day=(d2.getTime()-d1.getTime())/(1000*60*60*24);
            System.out.println("一共"+day+"元");
            break;
        }
    }


    这里怎么修改他归还成功  state变为可借阅状态 0  并把日期设置为空

这不是已经修改了吗

  d.setState(0);
                d.setDate(null);_

我阅读这段代码,如果我没理解错的话,应该是给定一个DVD名称name,然后在List集合中查找该DVD,根据查找结果来判断状态或者处理。
你的代码有问题在于break的条件是有问题的,不应该break的,应该遍历一遍,实在没有对应的值的时候再返回,如果找到了就break.
修改实例代码如下,先查找(定义一个查找函数),再根据查找结果处理

 public DVD  findByName(String name,List list){
     for(DVD d:list){
             if(name.equals(d.getName()){
                    //找到指定name的对象,返回
                        return d
                }
        }

        //遍历结束,仍然没有name对应的对象,则找不到返回null
        reutrn null;
}

//处理代码
name=input.next();
DVD d = findByName(name);
if(d==null){
    //没找到
        System.out.println("无法查找到该DVD");
}else if(d.getState()==0){
    System.out.println("该DVD未借阅 ");
}else if(d.getState()==1){
   //修正时间
     d.setState(0);
   d.setDate(null);_
  System.out.println("归还成功");
Date d1=new SimpleDateFormat("yyyy-MM-dd").parse(d.getDate());
Date d2=new Date();//当前时间
long day=(d2.getTime()-d1.getTime())/(1000*60*60*24);
System.out.println("一共"+day+"元");
}

你的d.setDate(null);应该在后面,不能再d1的前面,因为d1是根据d的时间来取值的

参考:

 http://wenku.baidu.com/link?url=zxwX6NGwqHZWM9Gq98Dcu1aWdICAhB7DSzeclrYQY8cSHeUUnhgeGYpT_X1vQ9msuus_wsI-rcUPFCUJqU2Kj_BolnEYRjoEpzdsggu8Lxm