Java 集合框架之 List

1、特点

       元素有序(元素的存储和取出顺序一致)可重复

2、List<E> 特有功能

       void add(int index, E e):在列表指定位置插入指定元素
       void addAll(int index, Collection<? extends E> c):将 c 中所有元素插入到集合的指定位置
       E get(int index):返回列表中指定位置的元素
       int indexOf(Object o):返回指定元素在列表中第一次出现的位置,如果列表中不存在该元素,则返回 -1
       int lastIndexOf(Object o):返回指定元素在列表中最后一次出现的位置,如果列表中不存在该元素,则返回 -1
       ListIterator<E> listIterator():返回该列表的迭代器
       ListIterator<E> listIterator(int index):从指定位置返回该列表的迭代器
       E remove(int index):删除列表中指定位置的元素
       E set(int index, E e):用指定元素替换列表中指定位置的元素
       List<E> subList(int fromIndex, int toIndex):返回列表中从 fromIndex(包括)到 toIndex(不包括)范围内的元素

3、遍历方式

 (1) 迭代器

       继承 Collection 的迭代器

public class ListDemo
{
	public static void main(String[] args)
	{
		List<String> list = new ArrayList<String>();
		list.add("Java");
		list.add("HTML");
		list.add("C#");
		list.add("Android");
		
		Iterator<String> it = list.iterator();
		
		while(it.hasNext())
		{
			String str = it.next();
			System.out.println(str);
		}
	}
}

       List 特有的迭代器

public class ListDemo
{
	public static void main(String[] args)
	{
		List<String> list = new ArrayList<String>();
		list.add("Java");
		list.add("HTML");
		list.add("C#");
		list.add("Android");
		
		ListIterator<String> lit = list.listIterator();
		
		while(lit.hasNext())
		{
			String str = lit.next();
			System.out.println(str);
		}
	}
}

 (2) foreach

public class ListDemo
{
	public static void main(String[] args)
	{
		List<String> list = new ArrayList<String>();
		list.add("Java");
		list.add("HTML");
		list.add("C#");
		list.add("Android");
		
		for(String str : list)
		{
			System.out.println(str);
		}
	}
}

 (3) 普通 for 搭配 E get(int index)

public class ListDemo
{
	public static void main(String[] args)
	{
		List<String> list = new ArrayList<String>();
		list.add("Java");
		list.add("HTML");
		list.add("C#");
		list.add("Android");
		
		for(int i = 0; i < list.size(); i++)
		{
			String str = list.get(i);
			System.out.println(str);
		}
	}
}

4、子类极其特性

 (1) ArrayList<E>

       特点

       底层是数据结构是数组,查询快,增删慢;线程不安全,效率高。

 (2) Vector<E>

       特点

       底层是数据结构是数组,查询快,增删慢;线程安全,效率低。

       特有方法

       public void addElement(E e):添加元素
       public E elementAt(int index):根据索引值获取元素
       public Enumeration<E> elements():获取枚举,功能和迭代器类似

       特有遍历方式

public class ListDemo
{
	public static void main(String[] args)
	{
		Vector<String> vt = new Vector<String>();
		vt.add("Java");
		vt.add("HTML");
		vt.add("C#");
		vt.add("Android");
		
		// Vector 特有遍历方式一
		Enumeration<String> em = vt.elements();
		
		while(em.hasMoreElements())
		{
			String str = em.nextElement();
			System.out.println(str);
		}
		
		// Vector 特有遍历方式二
		for(int i = 0; i < vt.size(); i++)
		{
			String str = vt.elementAt(i);
			System.out.println(str);
		}
	}
}

 (3) LinkedList<E>

       特点

       底层数据结构是链表,查询慢,增删快;线程不安全,效率高

       特有方法

       public void addFirst(E e):在列表开头添加元素
       public void addLast(E e):在列表末尾添加元素
       public void getFirst():获取列表开头元素
       public void getLast():获取列表末尾元素
       public E removeFirst():移除列表开头元素
       public E removeLast():移除列表末尾元素
       更多请查阅 API

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值