首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

List的indexOf方法解决方案

2012-03-19 
List的indexOf方法使用List类的indexOf方法可以返回指定元素的索引但是假如是ListFoo那么我想通过Foo的

List的indexOf方法
使用List类的indexOf方法可以返回指定元素的索引
但是假如是List<Foo>
那么我想通过Foo的唯一性的ID来返回索引
只能通过循环获取吗?
[code=Java]
private int getIndex(List<Foo> list,Foo foo){
  int size=list.size();//list是List<Foo>的一个实例
  int index=-1;
  Foo temp=null;
  for(int i=0;i<size;i++){
  temp=list.get(i);
  if(temp.ID==foo.ID){
  return i;
}

}
return index;
}
/code]
还有其他方法吗?谢谢各位了

[解决办法]
时间复杂度是0(n),已经够可以了
[解决办法]
如果是这样的话为什么要用List呢,用Map吧,这样就是key-value了,就可以达到楼主的要求了~
[解决办法]
如果List<Foo>中的Foo是唯一的,可以考虑用set来做
[解决办法]
楼主真是牛!!

 List是保存的只是Foo实例的引用, 所以当你修改Foo实例的时候, List所指的还是你那个修改的Foo实例, 所以保存在List当中的对象一般如果发生变化, 可以反映到List上的。


至于用什么方法查找List中的Foo实例, 个人感觉用什么方法都一样, 最终还是要遍历的, 不过如果用散列的话更快点?

热点排行
Bad Request.