赞
踩
目录
java.util.List
接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List
接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。
1、它是一个元素存取有序的集合。
2、它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。
3、集合中可以有重复的元素。
List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根据元素索引来操作集合的特有方法。
方法名 | 说明 |
---|---|
public void add(int index, E element) | 将指定的元素,添加到该集合中的指定位置上。 |
public E get(int index) | 返回集合中指定位置的元素。 |
public E remove(int index) | 移除列表中指定位置的元素, 返回的是被移除的元素。 |
public E set(int index, E element) | 用指定元素替换集合中指定位置的元素,返回值的更新前的元素。 |
- public class ListDemo {
- public static void main(String[] args) {
- List<String> list=new ArrayList<>();
- //添加元素
- list.add("hello");
- list.add("world");
- list.add("java");
- System.out.println(list);
- //删除指定索引元素或者删除指定元素
- list.remove("world");
- list.remove(0);
- System.out.println(list);
- //获取集合的元素个数
- int size = list.size();
- System.out.println(size);
- //查看集合中是否包含指定元素
- boolean hello = list.contains("hello");
- System.out.println(hello);
-
- //list集合获取指定索引的元素
- String s = list.get(0);
- System.out.println(s);
- System.out.println("-------------------");
- //list集合遍历
- Iterator<String> iterator = list.iterator();
- while(iterator.hasNext()){
- String next = iterator.next();
- System.out.println(next);
- }
- System.out.println("-------------------");
- //普通for遍历
- for (int i = 0; i <list.size() ; i++) {
- String s1 = list.get(i);
- System.out.println(s1);
- }
- System.out.println("-------------------");
- //增强for
- //iter
- for (String s1 : list) {
- System.out.println(s1);
- }
- }
- }
2.1、ArrayList集合特点
底层数据结构是数组,查询快,增删慢 线程不安全,效率高。
方法名 | 说明 |
---|---|
public void add(int index, E element) | 将指定的元素,添加到该集合中的指定位置上。 |
public E get(int index) | 返回集合中指定位置的元素。 |
public E remove(int index) | 移除列表中指定位置的元素, 返回的是被移除的元素。 |
public E set(int index, E element) | 用指定元素替换集合中指定位置的元素,返回值的更新前的元素。 |
public boolean add(E e) | 将指定的元素添加到此列表的尾部。 |
- public class ArrayListDemo {
- public static void main(String[] args) {
- ArrayList<String> arrayList=new ArrayList<>();
- //添加元素
- arrayList.add("hello");
- arrayList.add("world");
- //在指定索引添加元素替换原有的元素
- arrayList.add(0,"rose");
- //指定索引,在此索引处进行设置值
- arrayList.set(1,"java");
- System.out.println(arrayList);
- //获取指定索引的元素
- String s = arrayList.get(1);
- System.out.println(s);
- //删除指定索引的元素
- String remove = arrayList.remove(1);
- System.out.println(remove);
- System.out.println(arrayList);
- }
- }
1、底层数据结构是链表,查询慢,增删快
2、线程不安全,效率高
方法名 | 说明 |
---|---|
public void addFirst(E e) | 将指定元素插入此列表的开头。 |
public void addLast(E e) | 将指定元素添加到此列表的结尾。 |
public E getFirst() | 返回此列表的第一个元素。 |
public E getLast() | 返回此列表的最后一个元素。 |
public E removeFirst() | 移除并返回此列表的第一个元素。 |
public E removeLast() | 移除并返回此列表的最后一个元素。 |
public E pop() | 从此列表所表示的堆栈处弹出一个元素。 |
public void push(E e) | 将元素推入此列表所表示的堆栈。 |
public boolean isEmpty() | 如果列表不包含元素,则返回true。 |
LinkedList是List的子类,List中的方法LinkedList都是可以使用,我们只需要了解LinkedList的特有方法即可。在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。
- public class LinkedListDemo {
- public static void main(String[] args) {
- LinkedList<String> linkedList=new LinkedList<>();
- //添加元素
- linkedList.add("hello");
- linkedList.add("world");
- linkedList.add("java");
- //添加头部元素
- linkedList.addFirst("head");
- //添加尾部元素
- linkedList.addLast("last");
- System.out.println(linkedList);
- System.out.println("-------------------");
- //获取头部元素
- String first = linkedList.getFirst();
- System.out.println(first);
- //获取尾部元素
- String last = linkedList.getLast();
- System.out.println(last);
- System.out.println("-------------------");
- //删除头部元素并返回该元素值
- String s = linkedList.removeFirst();
- //删除尾部元素并返回该元素值
- String s1 = linkedList.removeLast();
- System.out.println(s);
- System.out.println(s1);
- System.out.println(linkedList);
- System.out.println("-------------------");
- //循环集合 如果不为空就弹出一个元素
- while(!linkedList.isEmpty()){
- linkedList.pop();
- }
- System.out.println(linkedList);
- }
- }
1、底层数据结构是数组,查询快,增删慢。
2、线程安全,效率低。
- public class VectorDemo {
- public static void main(String[] args) {
- Vector<String> vector=new Vector<>();
- vector.addElement("hello");
- vector.addElement("world");
- vector.addElement("java");
-
- //集合遍历
- for (int i = 0; i <vector.size() ; i++) {
- String s = vector.elementAt(i);
- System.out.println(s);
- }
- System.out.println("-------------------");
- //vector集合迭代器遍历
- Enumeration<String> elements = vector.elements();
- while(elements.hasMoreElements()){
- String s = elements.nextElement();
- System.out.println(s);
- }
- System.out.println("--------------------");
- //增强for遍历
- for (String s : vector) {
- System.out.println(s);
- }
- }
- }
1、ArrayList:
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
2、LinkedList:
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
3、Vector:
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
4、List集合特点:有序可重复。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。