Java - 仅使用部分数据获取列表中最后一次出现的对象

时间:2017-01-10 20:41:28

标签: java list lastindexof

不确定标题是否有意义。但我目前卡住试图在列表中最后一次出现一个对象。让我们说对象受到年龄(整数)和名称(字符串)的影响。我试图让这个年龄的最后一次出现" 18"在列表中,并检索名称。我该怎么做呢?

我正在使用的当前代码块(抱歉,不得不将其耗尽):

private List<Callable<Void>> createTasks(ArrayList<NamesAndAges> namesAndAges) {
        List<Callable<Void>> tasks = new ArrayList<Callable<Void>>();

        int endOfIndex = 0, beginningOfIndex = 0;

        for (NamesAndAges nameAndAge : namesAndAges) 
        {
            if (endOfIndex >= minSize && endOfIndex == namesAndAges.lastIndexOf(???))
            {
                tasks.add(new addIntoDB(namesAndAges.subList(beginningOfIndex, endOfIndex)));
                beginningofIndex = endOfIndex+1;
            }
            endOfIndex++;
        }
        return tasks;
    }

我基本上卡在哪里???在代码中。我以为我可以使用lastIndexOf()。

2 个答案:

答案 0 :(得分:0)

基于this answer,如果你有一个列表,你可以在集合的末尾启动你的迭代器并向后迭代:

:

答案 1 :(得分:0)

尝试这样的事情。

    ArrayList<Integer> a = new ArrayList<Integer>();

    // add your elements...
    for(int i = 1; i < 19; i++)
    {
        a.add(i);
    }


    while(a.size() > 0) 
    {            
        System.out.println("last item: " + a.get(a.size() - 1));//print last item
        a.remove(a.size() - 1);//remove last item
    }