miaowei128 2015-07-12 00:35 采纳率: 0%
浏览 1571

java 线程异常问题 并发性

package ListTest;

import java.util.ArrayList;

public class BookList {
ArrayList bl =new ArrayList();

public void chunBan(){
    Book b1= new Book();
    b1.setBid(1);
    b1.setName("java");
    b1.setPrice(32.00);
    bl.add(b1);

    Book b2 = new Book();
    b2.setBid(2);
    b2.setName("c++");
    b2.setPrice(56.00);
    bl.add(b2);
}

public void chaXun(int bid) {
    for (Book book : bl) {
        if (book.getBid()==bid) {
            System.out.println(book.getName()+"\t"+book.getPrice());
        }
    }
}

public void  see() {
    for (Book book : bl) {
        System.out.println(book.getName());
    }
}

public  void update(int bid,double price) {
    for (Book book : bl) {
        if (book.getBid()==bid) {
            book.setPrice(price);
        }
    }
}

public void remove2(int bid) {
    for (Book book : bl) {
        if (book.getBid()==bid) {
            bl.remove(book);
        }
    }
}

public void jiXunChuBan(int bid,String name,double price) {
    int k=bl.size();
    Book b3 = new Book(bid,name,price);
    bl.add(k,b3);
}
public void qingKong() {
    bl.clear();
}

}

package ListTest;

public class Book {
private int bid;
private String name;
private double price;
public Book(int bid, String name, double price) {
super();
this.bid = bid;
this.name = name;
this.price = price;
}
public Book() {
super();
}
public int getBid() {
return bid;
}
public void setBid(int bid) {
this.bid = bid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}

}

package ListTest;

public class BookMain {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    BookList blist = new BookList();
    blist.chunBan();
    blist.see();
    blist.jiXunChuBan(3, "c", 59.00);
    blist.see();
    blist.remove2(3);
    blist.see();


}

}

  • 写回答

4条回答 默认 最新

  • JonsonJiao 2015-07-12 01:21
    关注

    把remove2方法改成下面的。遍历list时执行了删除操作不能在进行遍历了。

    public void remove2(int bid) {
            for (Book book : bl) {
                if (book.getBid() == bid) {
                    bl.remove(book);
                    break;
                }
            }
        }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件