关于ArrayList查找问题,请指教

throughardtime 2006-07-31 10:34:35
郁闷,很简单的问题都不会,请大家帮忙
写了一个ArrayList,里面的元素有ID,NAME属性,知道元素NAME想取出list里的这个元素,怎么办?求代码!
...全文
1359 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangx1949 2006-08-06
  • 打赏
  • 举报
回复
用Map
zhb1208 2006-08-02
  • 打赏
  • 举报
回复
import java.util.*;

public class ArrayListTest{


public static void main(String args[]){
ArrayList al = new ArrayList();
al.add("ok");
al.add("ko");
al.add("name");
Iterator iterator = al.iterator();
String temp = null;
//法一
while(iterator.hasNext()){
temp = (String)iterator.next();

System.out.println( "The first is:" + temp);
if(temp.equals("name")){
break;
}
}

//法二
int number = al.indexOf("name");
String name = (String)al.get(number);
System.out.println("The second is:" + name);
}
}
这样好象可以。
hbwhwang 2006-08-02
  • 打赏
  • 举报
回复
二分?怎么二分?
二分得先排序!ArrayList有序吗?
qjyh 2006-08-01
  • 打赏
  • 举报
回复
有Name,有value,而且要根据name搜索,那就不要用List。
你可以用一个 Map (name -> List (Value1, Value2) )这样的数据结构不久ok了。
程序獵人 2006-08-01
  • 打赏
  • 举报
回复
用Map吧。
yanhan0615 2006-07-31
  • 打赏
  • 举报
回复
最简单的穷举法,假设你的类型叫Element:
for(int i = 0;i<list.size();i++)
{
if(((Element)list.get(i)).NAME.equals(NAME))//假设你的NAME是String类型的
{
此时的list.get(i)就是你要的元素
}
}
yanhan0615 2006-07-31
  • 打赏
  • 举报
回复
Sorry,想了一下,确实是可以用二分法,只是比较起来麻烦而已
yanhan0615 2006-07-31
  • 打赏
  • 举报
回复
名字如何二分法啊?

倒是可以做一个索引,按索引查找,可是那样就变成HashTable了,还不如直接用
ranranhu 2006-07-31
  • 打赏
  • 举报
回复
也可以用二分查找法
throughardtime 2006-07-31
  • 打赏
  • 举报
回复
谢谢,我以为有什么简单方法,我也是这样做的。还是非常感谢

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧