java中list集合中的用indexOf方法怎样实现,
publicBookgetbookByISBN(Booku){//TODOAuto-generatedmethodstubintindex=book.indexOf(u)...
public Book getbookByISBN(Book u)
{
// TODO Auto-generated method stub
int index = book.indexOf(u);
if(index!=-1)
{
return book.get(index);
}
else
{
return null;
}
}根据图书IBSN码查图书这样怎么会查不到呢,总是返回null呢? 展开
{
// TODO Auto-generated method stub
int index = book.indexOf(u);
if(index!=-1)
{
return book.get(index);
}
else
{
return null;
}
}根据图书IBSN码查图书这样怎么会查不到呢,总是返回null呢? 展开
4个回答
展开全部
因为index等于-1了。。。
你的传入参数 (Book u) 是什么? book中放的又是什么?为啥传入一个Book又返回了一个Book
你的传入参数 (Book u) 是什么? book中放的又是什么?为啥传入一个Book又返回了一个Book
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
indexOf是返回列表中首次出现指定元素的索引,如果列表不包含此元素,则返回 -1。更正式地说,返回满足下面条件的最低索引 i:(o==null ? get(i)==null :o.equals(get(i))),如果没有这样的索引,则返回 -1。
从你的程序看显然int index 值为-1,因此返回null。
出现 为 -1 的原因:
1 、 你的程序最好使用泛型来处理:
List <Book> book=XXX;
book.indexOf(u);
2 、仔细检查你的 List<book>是否为空 或者u 是否存在于集合中等,仔细排查。
从你的程序看显然int index 值为-1,因此返回null。
出现 为 -1 的原因:
1 、 你的程序最好使用泛型来处理:
List <Book> book=XXX;
book.indexOf(u);
2 、仔细检查你的 List<book>是否为空 或者u 是否存在于集合中等,仔细排查。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是没有重写equals造成的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询