数组值的查询问题

trycome 2009-06-04 10:31:34
一个String[] a{10112,10113,10114}
有一ArrayList容器存放对象item有一个ID树形值可能是(10111,10112,10113,10114,10115)我要用for循环在ArrayList取里item, 用item.getID()取到一个10111,去查询是否在String[] a里面,这个查询的比较怎么做?
Arrays int binarySearch(type[] a,type key):这个方法查询key元素值在a数组中出现的索引;如果a数组不包含key元素值,则返回-1.调用该方法时要求数组中元素已经按升序排列,这样才能得到正确结果。
这里说的“要求数组中元素已经按升序排列”是什么意思?

ShoppingCart cart = (ShoppingCart) session.getAttribute("shoppingcart");
ArrayList<CartItem> items = cart.getCart();
String goods=request.getParameter("goods"); //购买的商品
String[] goodsID =goods.split(";");
for(int i=0;i<items.size();i++ ){
item = items.get(i);
if( ){
这个if怎么判断item.getID()是否在String[] goodsID里存在????????????
}
...全文
82 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
breezes2008 2009-06-04
  • 打赏
  • 举报
回复
Arrays.sort(goodsID); //升序排列
binarySearch(goodsID,item.getID()) //二分查找法
xnjnmn 2009-06-04
  • 打赏
  • 举报
回复
//如果a数组不包含key元素值,则返回-1.
public static int test(String[] a,String key){
insert(a);
for(int i = 0;i<a.length;i++){

if(a[i].equals(key)){
// 如果a数组包含key元素值 返回1,LZ自己可以修改
return 1;
}
}

//如果a数组不包含key元素值,则返回-1.
return -1;
}

/**
* 插入排序从小到大 ---升序
*String[] goodsID =goods.split(";");获得的是String[]
*/
public static String[] insert(String[] a)
{
int out, in;
for ( out = 1; out < a.length; out++ )
{
int temp = Integer.parseInt(a[out]);
in = out;
while ( in > 0 && Integer.parseInt(a[in - 1]) >= temp )
{
a[in] = a[in - 1];
--in;
}
a[in] = String.valueOf(temp);
}
return a ;
}
trycome 2009-06-04
  • 打赏
  • 举报
回复
我想应该就是数组插叙,但是我不懂Arrays int binarySearch(type[] a,type key):这个方法查询key元素值在a数组中出现的索引;如果a数组不包含key元素值,则返回-1.调用该方法时要求数组中元素已经按升序排列,这样才能得到正确结果。
这里说的“要求数组中元素已经按升序排列”是什么意思?
oklinsong 2009-06-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 breezes2008 的回复:]
Arrays.sort(goodsID); //升序排列
binarySearch(goodsID,item.getID()) //二分查找法
[/Quote]
正解,先调用sort排序,再调用binarySearch查找!

62,614

社区成员

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

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