这是我的功能,找到id
来自list
通过匹配titles
public static int findIdByTitle(List<Integer> IDs, List<String> Titles ,String title){
for (int i = 0; i < IDs.size(); i++){
if (Titles.get(i).equals(title))
return IDs.get(i);
}
return 0;
}
此功能在 model list
中搜索并找到id
但我不能使用它,因为:
int id = findIdByTitle(Core.userSignIn.getBasicList().getGradeList().get(****?****).getID()
,Core.userSignIn.getBasicList().getGradeList().get(****?****).getName()
,spinnerGrade.getSelectedItem().toString());
我必须给它一个数字位置:( see the lists.get(****?****).getID()
或getName()
我希望对所有型号使用该功能,而不仅仅是此型号
给 2 lists
和一个匹配的单词,使用匹配的单词来查找它在 list
中的位置,并给我一个 ID
这个位置
我的所有模型都有ID、标题,其中一些模型有ParentID
<小时/>在 Nitin 的帮助下,我的问题已经解决:
List<String> Titles = new ArrayList<>();
List<Integer> IDs = new ArrayList<>();
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
Titles = Core.userSignIn.getBasicList().getGradeList().stream().map(GradeList::getGradeName).collect(Collectors.toList());
IDs = Core.userSignIn.getBasicList().getGradeList().stream().map(GradeList::getGradeID).collect(Collectors.toList());
} else {
Titles = new ArrayList<>(Core.userSignIn.getBasicList().getGradeList().size());
IDs = new ArrayList<>(Core.userSignIn.getBasicList().getGradeList().size());
for (GradeList gradeList : Core.userSignIn.getBasicList().getGradeList()) {
Titles.add(gradeList.getGradeName());
IDs.add(gradeList.getGradeID());
}
}
educationList1.setiGradeID(findIdByTitle(IDs
,Titles
,spGrade.getSelectedItem().toString()));
最佳答案
您首先必须将列表转换为整数列表和字符串列表,然后将其传递给您的方法。如果您使用的是 Java 8,则可以使用以下代码:
final List<Integer> testList1 = BasicList().getGradeList().stream().map(Test::getId).collect(Collectors.toList());
final List<String> testList2 = BasicList().getGradeList().stream().map(Test::getName).collect(Collectors.toList());
将您的类名替换为上面代码中的Test。
对以下 java 8 环境使用以下代码:
List<String> strings = new ArrayList<>(BasicList().getGradeList().size());
for (Test test : BasicList().getGradeList()) {
strings.add(test.getName());
}
与 Id 类似。
关于Java:从模型中按标题查找 Id (),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50149262/