• 集合(容器)-List接口及实现类


    容器的特征:①数据长度可变;②数据保存方式不同。 

    集合体系概述:JAVA的集合框架是由很多接口、抽象类、具体类组成。都位于java.util包中。

     Java中集合类中默认可以存储任意数据类型,Java中的集合提供泛型机制,在定义时最好为集合提供一个明确的类型。(存在转型问题)

    List接口及实现类
    ①ArrayList:

    长度可变的数组;

    在内存中分配连续的内存空间;

    遍历元素和查询元素效率较高。

    方法:

    boolean add(E e);

    容器末尾添加元素,若容器已满,则对容器进行扩容处理,新容量是原来的1.5倍,数组复制,创建新数组。

    void add(int index,E e);

    容器指定位置添加元素

    boolean addall(Collectionc);

    添加单列集合

    void clear();

    清空容器;

    boolean contains(Object o);

    判断是否包含指定元素;

    E get(int index);

    返回列表指定位置元素;

     int indexOf(Object o);

    返回o首次出现位置索引

    boolean isEmpty();

    返回容器是否为空

    int lastIndexOf(Object o);

    返回容器出现o最后一次索引

    ②LinkedList:

    链表存储方式(内存位置随机分配);

    插入、删除元素效率较高;

    查询效率较低。(需遍历容器)

    ③Vector:

    底层实现是数组,但线程安全

    List接口集合迭代

    ①for循环遍历(缺点:删除元素时下一个元素会自动跑到被删除元素位置)

    ②增强for循环遍历(缺点:不允许在集合里删除元素)

    ③迭代器遍历

    ④listIterator


    迭代器遍历

    获得迭代器对象

    Iteratoriterator=list.iterator();

    使用迭代器遍历容器

    1. package ColleationDemo;
    2. import java.util.ArrayList;
    3. import java.util.Iterator;
    4. public class List {
    5. public static void main(String[] args) {
    6. ArrayList arr=new ArrayList<>();
    7. arr.add("a");
    8. arr.add("b");
    9. arr.add("d");
    10. arr.add("r");
    11. arr.add("a");
    12. arr.add("l");
    13. Iteratorit=arr.iterator();
    14. while(it.hasNext())
    15. {
    16. String s= it.next();
    17. System.out.println(s);
    18. }
    19. }
    20. }

    注意:删除时使用迭代器中的remove(iterator.remove());


    listIterator(注:需满足list接口的集合类)

    方法:

    hasnext()

    next()

    previous()

    hasPrevious()

    hasPrevious(int index)

  • 相关阅读:
    一文get到SOLID原则的重点
    数字孪生智慧场馆|智慧协同,立体可控,节省方案智能化建设投资
    【1++的C++初阶】之模板
    前端树形Tree数据结构使用-‍♂️各种姿势总结
    算法趣题-Q33
    阿里大于发送短信(用户微服务--消息微服务)
    持续测试(Continuous Testing)
    C++ 类、方法的同一声明不同实现的方式
    CSS魔法!如何将任意CSS类型转换为数值?
    高德 Android 地图SDK 绘制面不显示
  • 原文地址:https://blog.csdn.net/m0_71385141/article/details/133578768