码迷,mamicode.com
首页 > 其他好文 > 详细

List集合基础

时间:2018-02-12 23:06:04      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:contain   变量   删除   dha   lis   否则   cti   log   常用方法   

集合:
数据结构(数据的组织方式和存储方式)不同导致了集合的不同
不同的集合向上抽取最终获得一个Collection集合
单列集合:
        collection




    List接口                           Set接口



ArrayList              LinkedList        HashSet        LinkedHashSet


双列集合:
        Map



HashMap            LinkedHashMap


集合的clone()方法,产生的集合副本传入一个Object类中,然后输出的话就是按照[,]的格式输出,输出的方式和集合相同

collection集合的常用方法
1.添加           boolean add(E e);
2.删除        boolean remove(Object obj);
3.清空        void clear();
4.是否包含        boolean contains(Object obj);
5.是否为空        boolean isEmpty();
6.求集合大小    int size();
7.将集合转化为数组    Object[] toArray();

集合的遍历方式:
1.转化成数组遍历
2.用迭代器Iterator

Iterator迭代器:
    使用方式:
    Iterator<E> it = 集合名.itrator();
    (如果集合里用的是基础类型,这个<E>可以省略)
Iterator的方法:
    boolean hasnext();
            迭代器是否还有下一个元素
    Object next();
            迭代器下一个元素值

迭代器相当于集合的一个副本,当迭代期间发现与集合不同就会抛出异常
Iterator的优缺点:
优点:方便使用
缺点:迭代期间不能进行增删操作,否则会产生异常(指针出现错误)
所以解决方法:
1.不使用Iterator,而是使用ListIterator,并使用ListIterator的add方法
      因为ListIterator和Iterator不同,他有n+1个指针出现的位置(Iterator有n个),允许进行遍历,迭代期间修改列表并获得迭代器在列表中的当前位置。
2.老老实实用if


泛型:
  将数据类型在编译期间就确定好的引用类型


增强for
 格式:
         for(数据类型   变量名: 集合名){
         }
注意:增强for使用期间不能进行增删操作,因为for实现的底层是迭代器

链表:next指针   
特点:查询慢,增删快(直接将下一个值的指针指向其他位置就好了)

栈和队列:栈是先进后出,队列是先进先出
特点:查询快,增删慢


List特点:
1.有序(存储的位置和读取的顺序是一致的)
2.有整数类型的索引(从0开始)
3.允许有重复

特有的功能(因为继承自Collection接口所以有自己的实现(虽然自己本身也是接口))
1.添加元素            void add(int index,E element);(注意和Collection的不同,这个返回值是void,并且有索引)
2.根据索引返回指定位置的元素    E get(int index);
3.移除指定索引处的元素    E remove(int index);
4.修改指定位置的元素        E set(int index,E element);
注意返回值类型

ArrayList和LinkedList的区别:
ArrayList底层是数组,查询快,增删慢(只需要指定索引就能查询,但是增删需要遍历)
LinkedList底层是链表,查询慢,增删快(只需要改变指针的位置就能增删,但是查询就只能遍历)

LinkedList的特有功能
1.添加
       void addFirst(E e);在列表开头添加元素
       void addLast(E e);在列表尾部添加元素
2.查询
       E getFirst();查询列表开头的元素
       E getLast();查询列表尾部的元素
3.删除
       E removeFirst();删除列表开头的元素
       E removeLast();删除列表尾部的元素

注意返回值,查询返回值是E正常,但是删除返回值也是E

List集合基础

标签:contain   变量   删除   dha   lis   否则   cti   log   常用方法   

原文地址:https://www.cnblogs.com/Yuanpp/p/8445702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!