java 怎么在List取得指定的对象 要求不用FOR之类的循环

比如要在List<User>里面取得一个User.userid=1的对象有没有直接可用的方法?... 比如要在List<User> 里面取得一个User.userid=1的对象 有没有直接可用的方法? 展开
 我来答
AiDirac
推荐于2018-03-31 · TA获得超过6784个赞
知道大有可为答主
回答量:8833
采纳率:33%
帮助的人:9972万
展开全部
用递归.
直到找到userid=1的时候再退出.

package src;

import java.util.ArrayList;

public class Test {
public static void main(String[] args) {
ArrayList<User> li = new ArrayList<User>();
User u1 = new User();
User u2 = new User();
User u3 = new User();
User u4 = new User();
User u5 = new User();
User result = new User();
u1.setUserId(1);
u1.setName("u1");
u2.setUserId(2);
u2.setName("u2");
u3.setUserId(3);
u3.setName("u3");
u4.setUserId(4);
u4.setName("u4");
u5.setUserId(5);
u5.setName("u6");

li.add(u1);
li.add(u2);
li.add(u3);
li.add(u4);
li.add(u5);
result = findById(li, 4);
System.out.println(result.getUserId() + " " + result.getName());
}

public static User findById(ArrayList<User> li, int id) {
User user = li.remove(0);
if (user.getUserId() == id)
return user;
else
return findById(li, id);

}
}

class User {
private int userId;

private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getUserId() {
return userId;
}

public void setUserId(int userId) {
this.userId = userId;
}

}
测试过了好用的.
liubird
2011-11-20 · TA获得超过1931个赞
知道小有建树答主
回答量:898
采纳率:100%
帮助的人:921万
展开全部
这种情况最好用Map的,List要取出特定的对象只能够用循环。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
味洋扛590
2011-11-18 · TA获得超过1647个赞
知道小有建树答主
回答量:1640
采纳率:100%
帮助的人:810万
展开全部
用for-in循环
for(User user:list){
if(user.getId()==1){

}
}
追问
数据量有点大 做循环不好  也规定了不做循环
追答
不管是List还是Map,得到某一个数据还是得循环遍历,不然没法得到
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0b78e34
2015-10-12 · 超过20用户采纳过TA的回答
知道答主
回答量:54
采纳率:50%
帮助的人:19.7万
展开全部
如果你的list排序和数量是固定的,可以用
list(1).getA()取得指定list 第一条数据中的的指定a的属性
还有list可以在jsp中使用C:forEach进行遍历
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tiantianshagn
2011-11-18 · 超过24用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:47.4万
展开全部
如果不遍历的话 要知道下标 list.get(0).getUserd();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式