java 怎么在List取得指定的对象 要求不用FOR之类的循环
比如要在List<User>里面取得一个User.userid=1的对象有没有直接可用的方法?...
比如要在List<User> 里面取得一个User.userid=1的对象 有没有直接可用的方法?
展开
9个回答
展开全部
用递归.
直到找到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;
}
}
测试过了好用的.
直到找到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;
}
}
测试过了好用的.
展开全部
这种情况最好用Map的,List要取出特定的对象只能够用循环。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用for-in循环
for(User user:list){
if(user.getId()==1){
}
}
for(User user:list){
if(user.getId()==1){
}
}
追问
数据量有点大 做循环不好 也规定了不做循环
追答
不管是List还是Map,得到某一个数据还是得循环遍历,不然没法得到
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你的list排序和数量是固定的,可以用
list(1).getA()取得指定list 第一条数据中的的指定a的属性
还有list可以在jsp中使用C:forEach进行遍历
list(1).getA()取得指定list 第一条数据中的的指定a的属性
还有list可以在jsp中使用C:forEach进行遍历
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果不遍历的话 要知道下标 list.get(0).getUserd();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询