常用对象API(集合框架-List和Set的特点)

List接口:

有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

与 set 不同,列表通常允许重复的元素。更确切地讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素。难免有人希望通过在用户尝试插入重复元素时抛出运行时异常的方法来禁止重复的列表,但我们希望这种用法越少越好。

List 接口在 iteratoraddremoveequals 和 hashCode 方法的协定上加了一些其他约定,超过了 Collection 接口中指定的约定。为方便起见,这里也包括了其他继承方法的声明。

List 接口提供了 种对列表元素进行定位(索引)访问方法。列表(像 Java 数组一样)是基于 的。注意,这些操作可能在和某些实现(例如 LinkedList 类)的索引值成比例的时间内执行。因此,如果调用者不知道实现,那么在列表元素上迭代通常优于用索引遍历列表。

List 接口提供了特殊的迭代器,称为 ListIterator,除了允许 Iterator 接口提供的正常操作外,该迭代器还允许元素插入和替换,以及双向访问。还提供了一个方法来获取从列表中指定位置开始的列表迭代器。

List 接口提供了两种搜索指定对象的方法。从性能的观点来看,应该小心使用这些方法。在很多实现中,它们将执行高开销的线性搜索。

List 接口提供了两种在列表的任意位置高效插入和移除多个元素的方法。

Set接口:

一个不包含重复元素的 collection。更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。正如其名称所暗示的,此接口模仿了数学上的 set 抽象。

在所有构造方法以及 addequals 和 hashCode 方法的协定上,Set 接口还加入了其他规定,这些规定超出了从 Collection 接口所继承的内容。出于方便考虑,它还包括了其他继承方法的声明(这些声明的规范已经专门针对 Set 接口进行了修改,但是没有包含任何其他的规定)。

对这些构造方法的其他规定是(不要奇怪),所有构造方法必须创建一个不包含重复元素的 set(正如上面所定义的)。

ListSet最重要的区别:

List:有序(存入和取出的顺序一致),元素都有索引(下标),元素可以重复。

Set:元素不能重复,无序!

List中常用的方法:
package collection;

import java.util.ArrayList;
import java.util.List;

public class ListDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//List常见的方法:(都可操纵角标。)
		add();//添加的方法
		delete();
		update();

	}
	
	//List添加的方法
	public static void add(){
		//添加
				//add(Object);从列表的尾部添加指定的元素。
				//add(int index,Object obj);从列表的指定位置插入指定的元素。
				List list=new ArrayList();
				list.add("zhangsan");
				list.add("lisis");
				list.add(1,"wangyong");//从下角标为1的地方插入wangyong这个元素。
				System.out.println(list.get(1));		
	}
	//List删除的方法
	public static void delete(){
		List list=new ArrayList();
		list.add("zhangsan");
		list.add("admin");
		list.add("zhaoliu");
		list.remove(1);//根据下角表删除指定的元素。
		for (String string : list) {
			System.out.println(string);
		}
	}
	
	//List修改的方法
	public static void update(){
		List list=new ArrayList();
		list.add("meihai");
		list.add("1314");
		list.set(0, "meihao");
		System.out.println(list.get(0)+list.get(1));
	}
}


你可能感兴趣的:(java)