微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – ArrayList查找第一个和最后一个元素

晚上好,

我有一个ArrayList(实例化为ld_data),我向前和向后查询/显示元素数据.在这个过程中,我需要知道我在第一个元素和最后一个元素.检测当我在最后一个元素,我这样做:

if((index + 1) <= ld_data.size())
{
    ....
}

这是因为size属性也是ArrayList的上限.但是,当我在第一个元素的时候检测到并不容易.最好的,我已经能够弄清楚,这似乎很跛脚….但它的作品.

if((index - 1) >= (ld_data.size() - ld_data.size()))
{
    ....
}

在C#.NET世界中,我们有ArrayList.UpperBound或者ArrayList.LowerBound在Java中有类似的东西?

JB

编辑:更多细节.所以对于更多的信息,我绑定到一个ListView.所以当用户滚动到列表的第一个元素时,我想显示一个msg“列表开始”,当它们到达结束时显示“结束列表”.我知道有一个滚动条,这使我很清楚,我只是想举一个例子,我在做什么.所以这个检查发生在“OnScroll”事件中.

解决方法

它总是建议使用迭代器或ListIterator来遍历列表.当您修改列表数据(删除或插入元素)时,使用列表大小作为参考不会锻炼.

迭代器 – 允许调用者在一个方向上遍历列表,并在迭代期间从底层集合中删除元素,并具有明确定义的语义

您可以使用ListIterator遍历列表. ListIterator允许程序员在任一方向上遍历列表,在迭代期间修改列表,并获取列表中迭代器的当前位置.你可以参考下面的例子.

ArrayList<String> list = new ArrayList<String>();
    ListIterator<String> iterator = list.listIterator();
    while(iterator.hasNext()){
        System.out.println(iterator.next());
        ...
        ...
        System.out.println(iterator.prevIoUs());
        if(!iterator.hasPrevIoUs()){
            System.out.println("at start of the list");
        }else if(!iterator.hasNext()){
            System.out.println("at end of the list");
        }

    }

这只是一个使用ListIterator的例子,请分析您的要求,并根据需要实现.

原文地址:https://www.jb51.cc/java/121994.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐