java----数据结构与算法----JavaAPI:java.util.List接口
-
- java.util.List接口
-
/** * @author lxrm * @date 20170307 * @description 本程序讲述java.util.List接口的用法 * java.util.List * 概述: * 1)List接口是Collection接口的子接口,所以List接口拥有Collection接口所定义的所有成员函数 * 除了有其父接口Collection中所定义的所有函数之外,List接口也添加了自己的函数,使得List集合拥有自己的特色 * List接口中新添加的函数有:a)用于根据索引访问集合元素的成员函数 * b)返回 ListIterator对象的成员函数(Collection接口中定义了一个返回Iterator对象的函数, * List接口中除了可以获得Iterator对象外,还可以获得ListIterator对象,可以以更多方式遍历List集合元素) * 2)List集合允许重复的元素 * 3)List集合中元素有一定的顺序,集合中元素顺序就是各个元素被插入的顺序 * 4)List集合允许使用索引来访问集合中的元素 * 构造函数: * java语言中接口没有构造函数 * 成员函数: * 【1】概述,由于List是一个接口,所以下述所有函数都是没有函数体的,也即没有实际的代码块 * 且由于List接口继承了java.util.Collection接口,所以List接口含有Collection接口定义的所有函数 * 下面所列出的都是List接口中的函数,除非特别说明,否则相应的函数都是从Collection接口中继承而来的 * 加了“List接口新添加函数”标注的,都是List接口根据List集合特性新添加的成员函数,用以凸显List集合的特色功能 * 【2】int size();//返回集合中元素个数,如果元素个数>Integer.MAX_VALUE,那么该函数的返回值==Integer.MAX_VALUE * 【3】boolean isEmpty();//集合是否为空 * 【4】boolean contains(Object o);//集合中是否包含元素o:Object * 【5】Iterator<E> iterator();//返回可以遍历该集合中所有元素的一个迭代器(即Iterator对象) * “List接口新添加函数”【5.1】ListIterator<E> listIterator();//返回一个ListIterator对象,这个迭代器比Iterator更适于遍历List集合 * “List接口新添加函数”【5.2】ListIterator<E> listIterator(int index);//和【5.1】中函数功能类似, * //只不过这个函数返回的ListIterator的next指针已经指在了List集合中index:int位置 * //之后 An initial call to {@link ListIterator#next next}.将会返回List集合中index位置的元素 * // An initial call to {@link ListIterator#previous previous} 将会返回List集合中index-1位置上的元素 * 【6】Object[] toArray();//将集合转变成一个数组 * 【7】<T> T[] toArray(T[] a);//这个函数和【6】中所给的函数功能类似,但是这个函数还有额外的功能 * 功能: 这个函数除了将集合转换成数组之外 * 还实现集合元素数据类型 到 数组元素数据类型的转换(将集合元素由原来的数据类型转变成本函数的参数a:T[]所代表的数据类型——T) * 另外,还指定了函数返回值的长度(返回值的长度和本函数的参数数组a:T[]的长度一致) * @return 返回值(数组)的内容——集合元素 * 返回值中数组元素的数据类型——和本函数的参数数据类型一致 * 返回值(数组)的长度——和本函数的参数数组的长度一致,当集合元素个数小于参数数组a:T[]长度时,使用null填充空位从而使返回值长度达到要求 * 【8】boolean add(E e);//向集合中添加新元素,将新元素添加到List的末尾 * 【9】boolean remove(Object o);//从集合中删除一个元素(删除List集合中第一个o:Object,也即对应集合下标最小的参数元素o:Object) * 【10】boolean containsAll(Collection<?> c);//判断该集合中是否包含参数集合中的所有元素 * 【11】boolean addAll(Collection<? extends E> c);//将参数集合中的所有元素追加到该集合的末尾(相当于取并集) *“List接口新添加函数”【11.2】boolean addAll(int index, Collection<? extends E> c);//这个函数和【11】中函数功能类似,只不过 * //【11】中函数是将参数集合追加到该集合的末尾,而本函数是将参数集合追加到该集合的index:int开始的位置 * 【12】 boolean removeAll(Collection<?> c);//这个函数执行后,该集合中将不再含有参数集合中的任何一个元素(相当于集合相减) * 【13】 boolean retainAll(Collection<?> c);//执行这个函数之后,该集合中将不可能含有参数集合中不存在的元素(相当于取交集) *“List接口新添加函数”【13.1】List<E> subList(int fromIndex, int toIndex);//返回该List集合的一个子集(左包含又不包含) * 【14】void clear();//执行该函数后,集合将变成空的 * 【15】 boolean equals(Object o);//参数o:Object也是一个集合,这个函数用于判断两个集合的内容是否相同 * //(当且仅当两个元素类型相同,size相同,且元素依序都相同时返回值才是true) * 【16】int hashCode();//返回该集合所对应的hashCode码 * 备注:如果两个集合的内容完全相同,那么这两个集合对应的hashCode码也一定相同 * 即,若a.equals(b)==true,那么一定有a.hashCode()==b.hashCode() * 集合的hashCode码是按照如下公式计算出来的 * * <pre> * int hashCode = 1; * for (E e : list) * hashCode = 31*hashCode + (e==null ? 0 : e.hashCode()); * </pre> *“List接口新添加函数”【17】E get(int index);//返回List集合特定位置处的元素 *“List接口新添加函数”【18】 E set(int index, E element);//替换List集合中特定位置处的元素 *“List接口新添加函数”【19】void add(int index, E element);//在List集合的特定索引处添加一个新的元素element:E,并且将集合中相应元素往后移 *“List接口新添加函数”【20】E remove(int index);//删除List集合中特定位置处的元素,并将删除的元素作为返回值返回;另外,还会将集合中index:int后面的元素左移 *“List接口新添加函数”【21】int indexOf(Object o);//返回List集合中o:Object第一次出现的位置下标,如果List集合中没有该元素则返回-1 *“List接口新添加函数”【22】int lastIndexOf(Object o);//返回o:Object在List集合中最后一次出现的位置,如果List集合中没有该元素则返回-1 *“List接口新添加函数”【23】 *“List接口新添加函数”【24】 *“List接口新添加函数”【25】 * */ package javaAPI_dataStructure; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.ListIterator; public class JavaAPI_List { public static void main(String[] args){ List list=new ArrayList(); } }
学习的过程中总会得到一些心得体会,认真地将它们记录下来并分享给每一个愿意花费时间去阅读它们的人,然后意外地收获某个读者的评论,从而激发出新的感想,是一件十分令人欢快的事。如果你也在研习这方面的知识,欢迎加入到我们的队伍中来,和我们一起进步吧(^_^)
posted on 2017-03-08 11:09 LXRM-JavaWeb、ML 阅读(208) 评论(0) 编辑 收藏 举报