Java:从模型中按标题查找 Id ()

标签 java android

这是我的功能,找到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/

相关文章:

java - 父类(super class) obj = new 子类();意义和选角

Java(Android)重新排序对象列表

android - 如何查看加密 Realm 中的数据

android - 动态添加 View 时,光标在 EditText 中不可见

java - 从不同的类打印 toString

java - 更新 .WAR 文件而不导致 Tomcat 暂停在生产服务器中提供网页服务

java - 如何分离 TextView 以仅影响一个 TextView ?

android - 如何在 Intellij IDEA 中创建布局捕获

javascript - 找不到包名称 '' 的匹配客户端,但应用程序目录中存在 google-services.json

android - 在android上开发视频播放器以支持HLS