类集总结

java中最常用的类集接口是:Collection,List,Set,Map,Iterator,ListIterator,SortedSet,SortedMap,Queue,Map.Entry
List,Set,Queue,SortedSet继承与Collection
List可以存放重复的内容,Set不能存放重复的内容,所有的重复内容靠hashCode(),equals()两个方区分法
Queue 是队列接口,SortSet可以对集合的数据进行排序。

一 List接口的常用子类

ArrayList是List 子类,可以直接通过对象的多态为List接口实例化
(1)操作一:向集合中增加元素
要完成此操作可以直接使用Collection接口中定义东风两个方法
增加一个元素:public boolean add(E o)
增加一组元素:public boolean addAll(Collection<? extends E> c)
也可以使用List扩充的add()方法在指定的位置处增加元素 public void add(int index,E element).
(2)操作二:删除元素
Collection定义的方法
删除一个元素对象 public boolean remove(Object O)
删除一组元素对象 public boolean removeAll(Collection<?> c)

List 扩展的方法
删除指定位置的元素 public E remove(int index).

(3)操作三:
输出List中的内容
在Collection接口定义了取全部数据长度的方法size() 而在List接口中存在取得集合中的指定位置的元素的操作get(int index),使用两个方法即可输出集合中的全部内容

(4)操作四:
将集合变为对象数组
在Collection中定了toArray()方法可以将集合变为对象数组,但是由于在类集声明时已经通过泛型指定了集合中的元素类型,所以在接收时要使用泛型指定的类型。

例如 Object obj[] =list.toArray(); String temp=(String) obj[i];

(5)操作五:
集合的其他相关操作
在List中还可以攫取集合,查找元素位置,判断元素是否存在,集合是否为空的操作方法分别为
subList(int fromIndex,int toIndex ),indexOf(int Object o),contains(Object o),isEmpty().


LinkedList 子类与Queue接口
LiskedList表示的是一个链表的操作类,即java中已经为开发者提供好了一个链表程序。
(1)操作一:
在链表的开头和结尾和开头增加数据,方法分别为 public void addFirst(E o),public void addLast(E o);
(2)操作二:
在LinkList中存在很多种找到链表头的操作,其中最常用的为
找的表头 public E element();
找到不删除表头 public E peek();
找到并删除表头 public E poll();

(3)操作三:
在LinkedList类中存在poll()方法,通过循环次操作,就可以把内容全部取出(以先进先出(FIFO)的方式)



二  Set接口

Set接口的常用子类

1。散列的存放:HashSet
HashSet是Set接口的一个子类,主要的特点是:里面不能存放重复的元素,而且采用散列的存储方式,所以没有顺序。

2.有序的存放:TreeSet
相机和中插入数据可以是无序的,但是输出是有序的所以TreeSet是可以排序的子类,但是对于泛型为自定义类是,自定义类必须实现Comparable接口TreeSet才可以正常使用







三 迭代输出:Iterator 接口
Iterator 接口中的主要函数
public boolean hasNext() 判断是否有下一个值
pubic E next() 取出当前元素
public void remove() 移除当前元素

Iterator 接口的相关操作
(1)输出Collection中方的全部内容
Iterator 是一个接口,可以直接使用Collection接口定义的iterator()方法为其实例化。Collection接口中存在此方法,则List 和Set接口中也一定存在此方法
所以可以使用Iterator 接口输出
例如 List<String> all=new ArrayList<String>();
Iterator <Striing> iter =alll.iterator();
(2)使用Iterator 删除指定的内容
在Iterator 接口中除了可以输出内容之外,还可以删除当前的内容,直接使用remove()方法即可。此处要注意的是一个集合把内容交给Iterator 输出,但是集合中也存在一个remove()
方法,如果在使用Iterator 输出时集合自己调用了删除方法,则会出现运行时的错误,我在这里犯了错误!


四 Map接口
接口的常用子类
1。HashMap
(1)在Map接口中使用put(Object key, Object value)方法可以先集合中增加内容,之后可以通过get(E key)方法根据 key 找到其对应的value。
(2)如果要判断某个指定的key 或value是否存在,可以使用Map接口中提供的containskey(Object o)和containsValue(Object value)两个方法,前者是判断Map集合是否存在指定的key
后者是判断Map集合是否存在指定的value.
(3)输出全部的key
在Map中提供了一个叫做keySet()的方法,可以讲一个Map中的全部key变为一个Set集合,一旦有了Set实例,既可以使用Iterator输出。但是要注意的是接受的Set接口中指定的泛型要和Map中的key
的泛型类型保持一致。
(4)输出全部的value
如果要输出全部的value,则使用values()方法,此方法的返回类型是Collection。在进行次操作时同样需要注意泛型的类型。
(5)注意事项
对Map接口来说,其本身是不能直接使用迭代的但可以通过entrySet()方法变为Set接口对象
例如
Map <String,String>=new HashMap();
Set<Map.Entry<String,String>> allset =Map.entrySet();
Iterator< Map.Entry<String,String> iter =allSet.iertor();

你可能感兴趣的:(总结)