Java基础学习—List
Posted ✈✈✈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础学习—List相关的知识,希望对你有一定的参考价值。
一、List
1.List集合特有功能
/* * List集合的特有功能: * A:添加功能 * void add(int index,Object element):在指定位置添加元素 * B:获取功能 * Object get(int index):获取指定位置的元素 * C:列表迭代器 * ListIterator listIterator():List集合特有的迭代器 * D:删除功能 * Object remove(int index):根据索引删除元素,返回被删除的元素 * E:修改功能 * Object set(int index,Object element):根据索引修改元素,返回被修饰的元素 */
测试类
@Test public void testList(){ List list = new ArrayList(); list.add("AAA"); list.add("BBB"); list.add("CCC"); list.add("DDD"); System.out.println(list); //1.在指定索引位置添加元素 list.add(1,"QQQ"); System.out.println(list); //2.获取指定索引位置的元素 String str = (String)list.get(1); System.out.println("索引为1的元素: " + str); //3.移除指定索引位置的元素 list.remove(1); System.out.println(list); //4.修改指定索引位置的元素 list.set(0,"KKK"); System.out.println(list); //5.列表迭代器 ListIterator it = list.listIterator(); while(it.hasNext()){ String s = (String)it.next(); System.out.print(s + " "); } System.out.println(""); //可以逆向遍历,但是必须先正向遍历,没意义 while(it.hasPrevious()){ String s = (String)it.previous(); System.out.print(s + " "); } }
结果:
[AAA, BBB, CCC, DDD]
[AAA, QQQ, BBB, CCC, DDD]
索引为1的元素: QQQ
[AAA, BBB, CCC, DDD]
[KKK, BBB, CCC, DDD]
KKK BBB CCC DDD
DDD CCC BBB KKK
2.List子类的特点
ArrayList
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
Vector
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
LinkedList
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
二、ArrayList
1.ArrayList简介
ArrayList是一个动态数组,它的容量能动态的增长。
它继承于AbstractList,实现了List、RandomAccess、Cloneable、Serializable这些接口。
(1)ArrayList继承于AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历功能。
(2)ArrayList实现了RandomAccess接口,及提供了随机访问功能。在ArrayList中,我们可以通过元素的序列号快速获取元素对象,这就是快速随机访问。
(3)ArrayList实现了Cloneable接口,即覆盖了函数clone(),能被克隆。
(4)ArrayList实现了Serializable接口,意味着ArrayList支持序列化,能够通过序列化去传输。
2.构造函数
以上是关于Java基础学习—List的主要内容,如果未能解决你的问题,请参考以下文章