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的主要内容,如果未能解决你的问题,请参考以下文章

Java基础

201621123062《java程序设计》第九周作业总结

java入门学习—循环,选择,基础算法,API概念

201621123057 《Java程序设计》第9周学习总结

java JDK8 学习笔记——助教学习博客汇总

201621123002《java程序设计》第九周学习总结