java中list集合中的用indexOf方法怎样实现,

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呢?

java.util.ArrayList.indexOf(Object) 方法返回指定元素的第一个匹配项的索引在此列表中,或者-1,如果此列表中不包含该元素。
声明
以下是java.util.ArrayList.indexOf()方法的声明
public int indexOf(Object o)

参数
o -- 要搜索的元素。
返回值
此方法返回指定元素的第一个匹配项的索引在此列表中,或者如果此列表中不包含该元素返回-1。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-09
因为index等于-1了。。。
你的传入参数 (Book u) 是什么? book中放的又是什么?为啥传入一个Book又返回了一个Book
第2个回答  推荐于2017-12-16
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 是否存在于集合中等,仔细排查。本回答被提问者采纳
第3个回答  推荐于2018-02-26
应该是没有重写equals造成的。本回答被网友采纳

java中list集合中的用indexOf方法怎样实现,
从你的程序看显然int index 值为-1,因此返回null。出现 为 -1 的原因: 1 、 你的程序最好使用泛型来处理: List <Book> book=XXX; book.indexOf(u); 2 、仔细检查你的 List<book>是否为空 或者u 是否存在于集合中等,仔细排查。 本回答被提问者采纳 踏雪无痕卢志强 | 推荐于2017-12-16 13:20:51 ...

java 中ArrayList集合用indexof方法返回元素的索引 如果元素是重复的...
More formally, returns the lowest index i such that (o==null ? get(i)==null : o.equals(get(i))),or -1 if there is no such index.\/ public int indexOf(Object o) { if (o == null) { for (int i = 0; i < size; i++)if (elementData[i]==null)return i;} el...

java中indexOf();的使用。
解释写在注释里面:public class Finallypractice { public static void main(String[] args) { ArrayList<String> a = new ArrayList<String>(); a.add(0, "zero"); a.add(1, "one"); a.add(2, "two"); a.add(3, "three"); printAl(a); \/\/ 此时a的元素是...

java 中如何使用INDEX OF()
public static void main(String[] args){ String s = "Hello World!";\/\/ 1. indexOf(int ch)System.out.println("s.indexOf('o')=" + s.indexOf('o')); \/\/返回 4 \/\/2. indexOf(int ch, int fromIndex)System.out.println("s.indexOf('o',6)=" + s.indexOf('o',6));...

arrayList 中的indexof()方法能否仅根据List中储存的对象的其中一个成员...
利用for循环来找 for(int i=0;i

java中index的用法
纠正下,应该是indexOf(获取字符在字符串中的位置),没有index方法的。通常是和substring结合是用来进行特定字符串的截取。举例:String getSignInfo = reqResult.substring(reqResult.indexOf("(") + 1, reqResult.indexOf(")"));解释:上述方法就是截取reqResult字符串的中开始”(“和结束”)...

Java 中 indexof指令
int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1 eg:String str="a2dfcfar1bzvb";System.out.println(str.indexOf(97,2));看这个例子,输出:6

Java里,关于indexOf
1)索引可以理解为位数,只是在这里它不是从1开始计数,而是从零开始。2)String str1 = "abcabasiouabvcaisoabcaaabc";每个字符的索引 0123456789...3)index = str1.indexOf(str2);\/\/找到str2在str1中第一次出现的位置,可以看到对应的索引为0.while(-1!= index)\/\/只要str1还包含str2...

Java:如何获取list中所有元素的索引.
API是没有这种方法的...思路一:取到之后把该索引的内容替换掉 然后再次取索引 一直到 -1 思路二:遍历list .get(index)取值 与 你要去的值判断 相等则存储起来 判断完后即可得到你要的了..

如何实现 List 集合去重?
1.自定义去重自定义去重的实现方法有两种,首先我们可以创建一个新集合,通过循环原集合判断循环的元素,是否已存在于新集合,如果不存在则插入,否则就忽略,这样循环完,最终得到的新集合就是一个没有重复元素的集合,具体实现代码如下:importlombok.Data;importjava.util.ArrayList;importjava.util.List;...

相似回答