JavaSE-List集合

集合与数组的区别

大家都是容器

  1. 数组是固定长度的,集合的长度是可变
  2. 数组放的数据都是基本数据类型(四类八种),集合放的数据都是引用数据类型(String、Integer、自定义的对象等等)
  3. 集合中对于基本数据会转换为引用数据类型再转换

集合包含的内容

  1. Collection——接口(Interface)
    1. List(接口)集合——特定顺序的元素
    2. Set(接口)集合——不能够有重复的元素
  2. Map——类似于数据库,主要存储“键值对”(key-value)
  3. Iterable(集合的访问迭代),返回此集合中的元素的迭代器

List集合

List集合是一个有序可重复的集合,集合中每个元素都有对应的顺序索引

List允许加入重复元素是因为可以通过索引来访问指定位置的元素

List集合默认按照元素的添加顺序增加元素的索引

ArrayList

简介

ArrayList是基于数组实现的List类,实现所有可选列表操作,并允许所有元素,包括null

初始化

ArrayList<E> arrayList = new ArrayList<E>(); #初始数据类型为E,容量大小为10

常用方法

boolean add(E e)  #将指定的元素列表的结束
void add(int index, E element)  #在列表中指定的位置上插入指定的元素
boolean addAll(Collection<? extends E> c)  #追加指定集合的所有元素到这个列表的末尾,按他们的指定集合的迭代器返回
boolean addAll(int index, Collection<? extends E> c)  #将指定集合中的所有元素插入到该列表中,从指定位置开始
boolean contains(Object o)  #返回 true如果这个列表包含指定元素
void clear()  #从这个列表中移除所有的元素
E get(int index)  #返回此列表中指定位置的元素
E remove(int index)  #移除此列表中指定位置的元素
boolean remove(Object o)  #从该列表中移除指定元素的第一个发生,如果它是存在的
E set(int index, E element)  #用指定元素替换此列表中指定位置的元素
Object[] toArray()  #返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)

List集合遍历的方法

package com.ArrayList.util;

import java.util.ArrayList;
import java.util.Iterator;
/*
 * @author Administrator
 * @version 1.0
 */
public class ArrayListDemo {
    public static void main(String[] args){
        //初始化
        ArrayList<Integer> arrayList = new ArrayList<Integer>();

        for (int i = 0; i < 5; i++){
            arrayList.add(i);
        }
        //方法1,通过size()方法
        for (int i = 0; i < arrayList.size(); i++){
            System.out.println(arrayList.get(i));
        }
        //方法二,通过迭代器Iterator
        //初始化Iterator
        Iterator iterator = arrayList.iterator();
        //通过hashNext来判断是否有下个值,然后next输出这个值
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        //方法三,通过增强for循环对arrayList中的每一个对象赋给integer
        for (Integer integer: arrayList){
            System.out.println(integer);
        }
        //方法四,通过foreach()方法
        System.out.println("jdk1.8的新特性");
        arrayList.forEach(integer -> System.out.println(integer));
        arrayList.forEach(integer -> {System.out.println(integer);System.out.println(integer++);});
    }
}

LinkedList

简介

LinkedList是链表类数据结构

LinkedList与ArrayList的不同

  1. 链表中的元素可以任意的增加和删除效率很高,但是查询效率不如ArrayList(有索引)
  2. 对象存放在独立的空间中,而且每个空间保存了下一个连接的索引

初始化

LinkedList<E> linkedList = new LinkedList<E>();

常用方法

void addFirst(E e)  #在此列表的开始处插入指定的元素
void addLast(E e)  #将指定的元素列表的结束
E getFirst()  #返回此列表中的第一个元素
E getLast()  #返回此列表中的最后一个元素
boolean offer(E e)  #将指定的元素添加到列表的尾部(最后一个元素)。  
boolean offerFirst(E e)  #在列表的前面插入指定的元素。  
boolean offerLast(E e)  #在列表的结尾插入指定的元素。  
E element()  #检索,但不删除,此列表的头(第一个元素)
E peek()  #检索,但不删除,此列表的头(第一个元素)
E peekFirst()  #检索,但不删除该列表的第一个元素,或返回 null如果这个列表是空的。  
E peekLast()  #检索,但不删除该列表的最后一个元素,或返回 null如果这个列表是空的。  
E poll()  #检索并删除此列表的头(第一个元素)。  
E pollFirst()  #检索并移除此列表的第一个元素,或返回 null如果这个列表是空的。  
E pollLast()  #检索并移除此列表的最后一个元素,或返回 null如果这个列表是空的。  
E pop()  #从这个列表所表示的堆栈中弹出一个元素。  
void push(E e)  #将一个元素推到由该列表所表示的堆栈上。  

猜你喜欢

转载自blog.csdn.net/JavaDestiny/article/details/85560397
今日推荐