Java List集合特有方法程序用法

package Collection;

/*
Collection
	|--List:元素是有序的,元素可以重复。因为该集合体系有索引
	|	|--ArrayList:底层的数据结构使用的是数组结构  特点:查询,修改速度很快,但是增删稍慢。线程不同步
	|	|--LinkedList:底层使用的是链表的数据结构   特点:增删速度很快,查询稍慢
	|	|--Vector:底层是数组数据结构。线程同步。被ArrayList替代了
	|--set:元素是无序,元素可以重复

List:集合特有的方法,凡是可以操作角标的方法都是该体系特有的方法

增
	add(index,element);
	addall(index,Collection);

删
	remove(index);

改
	set(index,element);

查
	get(index);
	subList(from , to);
	listIterator();

List 集合特有的迭代器。ListIterator是Iterator的子接口
在迭代时,不可以通过集合对象的方法操作集合中的元素。因为会发生 Concurrent~~~ 异常。
 所以,在迭代时,只能用迭代器的方法操作元素,可是 Iterator 方法是有限的,只能对元素
 进行判断,取出,删除的操作。
 如果想要其他的操作如添加,修改等,就要使用其子接口,Listiterator.
 该接口只能通过List集合的listIterator方法获取。

*/

import java.util.*;

public class ListDemo
{

	/**
	 * @param args
	 */

	public static void sop(Object obj)
	{
		System.out.println(obj);
	}

	public static void method()
	{
		ArrayList<String> al = new ArrayList<String>();

		// add
		al.add("java01");
		al.add("java02");
		al.add("java03");

		sop("原集合:"+al);
		// 在指定位置添加元素
		al.add(1,"java09");

		// 删除指定元素
		al.remove(2);

		// 修改元素
		al.set(0, "Java10");

		// 通过角标获取元素
		sop("get(1):"+al.get(0));
		sop(al);

		// 获取所有元素 for循环
		for(int x = 0;x<al.size();x++)
		{
			System.out.println("al("+x+")="+al.get(x));
		}

		// 迭代器
		Iterator<String> it = al.iterator();
		while (it.hasNext())
		{
			sop("next: "+it.next());
		}

		// 通过 indexof 获取对象的位置
		sop("indexof = "+al.indexOf("Java10"));
		List<String> sub = al.subList(0, 2);
		sop("sub = "+sub);
	}

	public static void main(String[] args)
	{
		// TODO Auto-generated method stub

		// 演示列表迭代器
		ArrayList<String> alArrayList = new ArrayList<String>();
		alArrayList.add("Java01");
		alArrayList.add("Java02");
		alArrayList.add("Java03");

		sop(alArrayList);

		// 使用 ListIterator 接口
		ListIterator<String> li = alArrayList.listIterator();

		// 有没有前一个元素
		// sop("hasPrevious()"+li.hasPrevious());
		while (li.hasNext())
		{
			Object obj = li.next();
			if(obj.equals("Java01"))
			{
				// 添加
				// li.add("Java11");

				// 修改
				li.set("Java11");
			}
		}

		while (li.hasPrevious())
		{
			sop("Pre::"+li.previous());
		}

		// 有没有后一个元素
		// sop("hasNext():"+li.hasNext());
		// sop("hasPrevious()"+li.hasPrevious());

		sop(alArrayList);
		/*
		 * 使用 Iterator 接口
		// 在迭代过程中,准备添加或者删除元素
		Iterator<String> iterator = alArrayList.iterator();
		while (iterator.hasNext())
		{
			// sop("next: "+iterator.next());
			Object obj = iterator.next();
			if (obj.equals("Java01"))
			{
				// alArrayList.add("Java11");
				// 将 Java01 的引用从集合中删除了
				iterator.remove();
			}
			sop("Obj = "+obj);
		}
		*/
	}
}

  

时间: 2024-11-08 22:21:15

Java List集合特有方法程序用法的相关文章

Java LinkedList特有方法程序小解 &amp;&amp; 使用LinkedList 模拟一个堆栈或者队列数据结构。

package Collection; import java.util.LinkedList; /* LinkedList:特有的方法 addFirst()/addLast(); getFirst()/getLast(); removeFirst()/removeLast(); 若链表为空,抛出 没有这个元素异常/NoSuchElementException 但是 JDK1.6 版本以后出现了替代方法: offerFirst()/offerLast(); peekFirst()/peekLas

java.util 集合框架集合

java的集合框架为程序提供了一种处理对象组的标准方式.设计了一系列标准泛型接口: ⑴Collection ()接口,扩展了Iterable接口,位于集合层次结构的顶部,因此所有的集合都实现Collection接口,并提供了iterator()方法来返回一个迭代器.用add()方法添加对象,remove方法()删除元素,clear()删除集合所有元素(size=0),contains()方法查看集合是否包含对象,toArray()方法返回集合元素数组,equals()方法比较两个集合是否相等,s

【转】Java.util.ArrayList.set()方法实例

java.util.ArrayList.set(int index, E element) 替换与指定元素在此列表中指定位置的元素. 声明 以下是java.util.ArrayList.set()方法的声明 public E set(int index, E element) 参数 index -- 替换索引的元素. element -- 要被存储在指定位置的元素. 返回值 此方法返回在指定位置之前元素. 异常 IndexOutOfBoundsException -- 如果索引超出范围 例子 下

Java.util.Calendar.getInstance()方法实例

java.util.Calendar.getInstance() 使用目前的时区和语言环境的方法得到一个日历. 声明 以下是java.util.Calendar.getInstance()方法的声明 public static Calendar getInstance() 参数 NA 返回值 该方法返回一个日历Calendar. 异常 NA 例子 下面的示例演示java.util.Calendar.getInstance()方法的用法. package com.yiibai; import ja

Java.io.ObjectOutputStream.writeObject()方法实例

java.io.ObjectOutputStream.writeObject(Object obj) 方法将指定对象写入ObjectOutputStream.该对象的类,类的签名,以及类及其所有超类型的非瞬态和非静态字段的值被写入.默认的序列化的类可以使用writeObject和readObject方法被重写.由此对象引用的对象都写及物动词使对象的完全等价的图形可以由ObjectInputStream重建. 声明 以下是java.io.ObjectOutputStream.writeObject

java集合_collection子接口 list的特有方法,ArrayList类体现

/* Collection |--List:元素是有序的,元素可以重复.因为该集合体系有索引. |--ArrayList:底层的数据结构使用的是数组结构.特点:查询速度很快.但是增删稍慢.线程不同步. |--LinkedList:底层使用的链表数据结构.特点:增删速度很快,查询稍慢.线程不同步. |--Vector:底层是数组数据结构.线程同步.被ArrayList替代了.因为效率低. |--Set:元素是无序,元素不可以重复.. List: 特有方法.凡是可以操作角标的方法都是该体系特有的方法

java 程序语言中的LinkedList 集合基本方法演示

java 程序语言中的LinkedList 集合基本方法演示 import java.util.Iterator; import java.util.LinkedList; public class LinkedListDemos { public static void main(String[] args) { // 新建一个容器 LinkedList link = new LinkedList(); link.addFirst("abc1"); link.addFirst(&qu

黑马程序员——java基础 ArrayList集合基本方法演示

java基础 ArrayList集合基本方法演示 import java.util.ArrayList; import java.util.Iterator; public class ArrayListDemos { public static void main(String[] args) { // 创建一个新的容器 ArrayList al = new ArrayList(); al.add("abc1"); al.add("abc2"); al.add(&

跟王老师学集合(九)Java中hashCode方法与equals方法的用法

Java中对象比较 主讲人:王少华  QQ群号:483773664 学习目标: 掌握java中的==.equals().hashCode()的异同 一.问题 通过前面的学习,我们知道,Java集合有三个大的接口,List接口.Map接口.Set接口,这三个接口的特点是List接口中的元素能重复.Map接口中的key对象不能重复,Set接口中的元素是不可以重复的.那么问题来了,两个元素是否重复是根据什么来判断的. 二.Java中两个对象比较 (一).== 1.Java中,比较简单类型变量用"==&