创建图书馆的类,可以对图书进行增加,删除和查询的操作,图属性有编号,名称,类别,价格等
(1)删除根据图书的编号删除,如果没有该图书给出提示
(2)查询根据图书的价格查询,比如价格在20-30之间图书。
(3)处理所有向程序输入的异常学了List、Set、Map后,这是我的一道作业题,本想用ArrayList做的。我创建了 一个Book类,然后在Test里add了Book对象,但是删除的时候我用remove(a-1)删除,所以问题就来了,我按1删除的是索引为0的元素,但是删第二个的时候如果继续输入1,因为ArrayList会在删除元素后自动为后面的元素索引都--1.所以就把编号为2的“书”也删了,如果继续输入1就继续删后面的元素。
                al.add(new Book("《1111111》",1,"儿童类",56));
al.add(new Book("《打打按错》",2,"科普类",65));
al.add(new Book("《打打》",3,"地理类",44));
再是按照价格查询,更是没头绪。所以我想问问ArrayList怎么删除和查找元素对象中指定的属性的元素本萌新问的问题比较蠢,请各位大神轻喷。。顺便问下如何随机产生20个不重复的小写字母。。

解决方案 »

  1.   

    // 循环查找集合
    int removeId = 1;
    for (Book book : al) {
        if (book.id == removeId) { al.remove(book);  break; }
    }
      

  2.   

    先for循环遍历所有数据,然后判断编号和输入的相等就执行删除和重新编号
      

  3.   

    对book对象实现equals方法(比较时按编号进行比较),删除时直接创建一个新的book对象,从list中remove这个对象。
      

  4.   

    你可以先判断遍历,判断是否和编号相等,如果相等记录下标,再remove();