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的例子,请分析您的要求,并根据需要实现.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...