我创建了这个类。
public class UserData {
private int user_Id;
private List<String> disease_List=new LinkedList<String>();
/*Constructor*/
public UserData(int u_id, List<String> d_list)
{
this.user_Id=u_id;
this.disease_List=d_list;
}
}
我通过从文件中读取数据创建了大约500个对象。 现在我想搜索值。例如,如果用户输入疾病=过敏。 我想遍历所有对象并显示在疾病列表中过敏的用户。 我在互联网上搜索了这个,但没有找到任何有用的东西。
答案 0 :(得分:0)
您必须在集合中添加userData对象并迭代它们并访问它的属性,例如disease_list。
例如,如果您在arrayList中添加了userData对象,则可以按以下方式进行迭代
for(UserData user:UserDataList){
if(user.disease_list.contains("allergy") {
//display the user details
}
}
答案 1 :(得分:0)
我可能误解了这个问题..但基本上你想要做的是在每个UserData对象中的disease_List中搜索某个关键字,对吗?
所以说你在疾病列表中添加了String allergy = "allergy";
。
为了找到这个,您需要做什么,您需要遍历sick_list实例。
for (int i = 0; i < disease_list.size(); i++) {
if(disease_list.get(i).equals("allergy")){
//Now you know this UserData object contains "allergy". Now you
//can choose to break the iteration and do something with
//the object.
}
}
答案 2 :(得分:0)
您可以使用Lambdas表达式(使用java 8或更高版本)对列表进行排序。
public class UserData {
private int user_Id;
private ArrayList<String> diseases;
/*Constructor*/
public UserData(int u_id, ArrayList<String> d_list)
{
this.user_Id=u_id;
this.diseases=d_list;
}
public ArrayList filter(String disease) {
return Arrays.stream(diseases).filter(x -> x.equal(disease)).toArray();
}
}
答案 3 :(得分:0)
Java不仅会自动列出您创建的每个对象,还需要自己创建列表。
public class UserData {
/* This must exist somewhere */
private static List<UserData> everyone = new LinkedList<UserData>();
private int user_Id;
private List<String> disease_List=new LinkedList<String>();
/*Constructor*/
public UserData(int u_id, List<String> d_list)
{
this.user_Id=u_id;
this.disease_List=d_list;
everyone.append(this);
}
/* Iterator for all the objects */
public static Iterator<UserData> iterator() {
return everyone.iterator();
}
}
答案 4 :(得分:-1)
如果你想在这里迭代是一种方式
for(String disease:disease_list){
if(disease.equalsIgnoreCase("allergy")
log.info("You find out the Result");
}
否则您可以使用contains()
方法
if(disease_list.contains("allergy")){
log.info("found the disease");
}