【Java基础】集合(2) —— List

发布于:2024-05-16 ⋅ 阅读:(64) ⋅ 点赞:(0)

List

存储的对象是有序的(集合中存储对象的顺序和使用add方法添加对象的顺序一致),存储的对象是可重复的

List的特有的功能: 都是可以操作索引的功能。

  1. 增:

    • void add(int index, E element )
    • boolean addAll(int index, Collection<? extends E> c)
    col.add("java");
    col.add(1,"hello");
    col.addAll(2,col2);
    
    • E remove(int index)
      返回被删除的对象
    Object obj = col.remove(3);
    
    • E set(int index, E element)
      修改指定索引上的元素
     col.set(2,"bigdata");
    
    • E get(int index)
      得到指定位置上的元素
    • ListIterator listIterator()
      返回此列表元素的列表迭代器(按适当顺序)。
    • ListIterator listIterator(int index)
      从指定元素开始迭代
    • List subList(int fromIndex, int toIndex)
      返回子List,不包括结束位置上的元素
    • int indexOf(E element)
      获取元素的索引
    • int lastIndex0f(E element)
      获取元素的最后一次出现的索引
    • **void replaceAll(UnaryOperator operator) R apply(T t) **
      替换功能
    col.replaceAll(t->((String)t).concat("hehe"));
    
    • void sort (Comparator comparator) int compare(T o1, T o2)
      排序功能
    col.sort((o1,o2)->((String)o2).length()-((String)o1).length());
    
ArrayList
  • 后缀:List,说明存储的数据有序,可重复
  • 前缀:Array,说明该集合在存储数据时底层数据结构是数组
    数组的特点是便于查找,不便于添加和删除
Vector
  • 线程安全的实现
  • 该集合在存储数据时,底层数据结构是数组
遍历

Enumeration elements()
hasMoreElements() nextElement()

Vector v=new Vector();
v.add("java01");
v.add("java02");
Enumeration en = v.elements();
while(en.hasMoreElements()){
	Object obj = en.nextElement();
	System.out.println(obj);
}		
LinkedList
  • 后缀:List,说明存储的数据有序,可重复

  • 前缀:Linked,说明该集合在存储数据时,底层数据结构是链表

    ​ 链表的特点是便于添加和删除,不便于查找

    单向链表:

    在这里插入图片描述

    双向链表:

    在这里插入图片描述

方法
  • addFirst() addLast()
    getFirst() getLast()
    removeFirst() removeLast()

  • jdk1.6以后
    offerFirst() offerLast()
    peekFirst() peekLast()
    pollFirst() pollLast()

public static void main(String[] args) {
	LinkedList list=new LinkedList();
	list.addFirst("001");
	list.addFirst("002");
	list.addFirst("003");
	while(!list.isEmpty())//删除所有节点
		 System.out.println(list.removeFirst());
//System.out.println(list.getFirst());//NoSuchElementException
	//System.out.println(list.peekFirst()); //null  不会异常
    //System.out.println(list.removeFirst());// 异常
	System.out.println(list.pollFirst());//null  不会异常
}

img