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();
          }
      
      }
时间: 2024-11-03 14:26:23

java----数据结构与算法----JavaAPI:java.util.List接口的相关文章

Java数据结构与算法之集合

线性表.链表.哈希表是常用的数据结构,在进行Java开发时,SDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中. 一.Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object.一些Collection允许相同元素而另一些不行.一些能排序而另一些不行.Java  SDK不提供直接继承自Collection的类,Java  SDK提供的类都是继承自Collection的"子接口"如List和Set

java数据结构与算法之改良顺序表与双链表类似ArrayList和LinkedList(带Iterator迭代器与fast-fail机制)

转载请注明出处(请尊重原创!谢谢~): http://blog.csdn.net/javazejian/article/details/53073995 出自[zejian的博客] 关联文章: java数据结构与算法之顺序表与链表设计与实现分析 java数据结构与算法之双链表设计与实现 java数据结构与算法之改良顺序表与双链表类似ArrayList和LinkedList(带Iterator迭代器与fast-fail机制) ??这篇是数据结构与算法的第3篇,通过前两篇的介绍,对应顺序表和链表已有

java数据结构与算法之(Queue)队列设计与实现

[版权申明]转载请注明出处(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/53375004 出自[zejian的博客] 关联文章: java数据结构与算法之顺序表与链表设计与实现分析 java数据结构与算法之双链表设计与实现 java数据结构与算法之改良顺序表与双链表类似ArrayList和LinkedList(带Iterator迭代器与fast-fail机制) java数据结构与算法之栈设计与实现 java数据结构

java数据结构与算法之栈(Stack)设计与实现

[版权申明]转载请注明出处(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/53362993 出自[zejian的博客] 关联文章: java数据结构与算法之顺序表与链表设计与实现分析 java数据结构与算法之双链表设计与实现 java数据结构与算法之改良顺序表与双链表类似ArrayList和LinkedList(带Iterator迭代器与fast-fail机制) java数据结构与算法之栈设计与实现 ??本篇是jav

Java数据结构和算法之递归

四.递归 递归是函数调用自身的一种特殊的编程技术,其应用主要在以下几个方面:   阶乘 在java当中的基本形式是: Public  void  mothed(int n){//当满足某条件时: Mothed(n‐1): } 递归二分查找 Java二分查找实现,欢迎大家提出交流意见.  /** *名称:BinarySearch *功能:实现了折半查找(二分查找)的递归和非递归算法. *说明: *     1.要求所查找的数组已有序,并且其中元素已实现Comparable<T>接口,如Integ

Java数据结构和算法(二)——数组

数组的用处是什么呢?--当你需要将30个数进行大小排列的时候,用数组这样的数据结构存储是个很好的选择,当你是一个班的班主任的时候,每次要记录那些学生的缺勤次数的时候,数组也是很有用.数组可以进行插入,删除,查找等. 1)创建和内存分配 Java中有两种数据类型,基本类型和对象类型,也有人称为引用类型,Java中把数组当成对象,创建数组时使用new操作符. int array[] = new int[10]; 既然是对象,那么array便是数组的一个引用,根据Java编程思想(一) -- 一切都是

Java数据结构和算法之栈与队列

二.栈与队列 1.栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表. (1)通常称插入.删除的这一端为栈顶(Top),另一端称为栈底(Bottom). (2)当表中没有元素时称为空栈. (3)栈为后进先出(Last In First Out)的线性表,简称为LIFO表. 栈的修改是按后进先出的原则进行. 每次删除(退栈)的总是当前栈中"最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除. 图1 [示例]元素是以a1,a2,-,a

Java数据结构和算法之数组与简单排序

一.数组于简单排序 数组 数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信息分组的便利方法. 一维数组 一维数组(one‐dimensional array )实质上是相同类型变量列表.要创建一个数组,你必须首先定义数组变量所需的类型.通用的一维数组的声明格式是: type var‐name[ ]; 获得一个数组需要2步: 第一步,你必须定义变量所需的类型. 第二步,你必

Java数据结构和算法之链表

三.链表 链结点 在链表中,每个数据项都被包含在'点"中,一个点是某个类的对象,这个类可认叫做LINK.因为一个链表中有许多类似的链结点,所以有必要用一个不同于链表的类来表达链结点.每个LINK对象中都包含一个对下一个点引用的字段(通常叫做next)但是本身的对象中有一个字段指向对第一个链结点的引用. 单链表 用一组地址任意的存储单元存放线性表中的数据元素. 以元素(数据元素的映象)  + 指针(指示后继元素存储位置)  = 结点(表示数据元素 或 数据元素的映象) 以"结点的序列&q

Java数据结构和算法之哈希表

五.哈希表 一般的线性表.树中,记录在结构中的相对位置是随机的即和记录的关键字之间不存在确定的关系,在结构中查找记录时需进行一系列和关键字的比较.这一类查找方法建立在"比较"的基础上,查找的效率与比较次数密切相关.理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应.因而查找时,只需根据这个对应关系f找到给定值K的像f(K).若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上,由此不需