List集合基础

集合:
数据结构(数据的组织方式和存储方式)不同导致了集合的不同
不同的集合向上抽取最终获得一个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

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

时间: 2024-10-02 06:37:44

List集合基础的相关文章

java 集合基础1 学习笔记

集合特点: 1.用于存储对象的容器. 2.集合的长度是可变的. 3.集合中不可以存储基本数据类型值. Collection接口常见方法: 1.添加 boolean add(obj); boolean addAll(Collection coll); 2.删除 boolean remove(obj); boolean removeAll(Collection coll); void clear();//清空集合 3.判断 boolean contains(obj); boolean contain

黑马程序员——Java集合基础知识之Map

Map概念 要同时存储两个元素Key和Value,他们之间有映射关系,每个键不能重复,每个键只能映射到一个值. 当数据之间存在映射关系的时候,考虑使用Map集合. Map常用方法 如果添加的键原来有值,后添加的值会覆盖前面的值,并返回之前的值.put会返回来先添加的值,后添加的值会覆盖原有的值. Map tm =new TreeMap(); tm.put (key, value);//MAP没有add tm.remove (key) ;//去除一个key和对应的value,若不存在key返回nu

黑马程序员——Java集合基础知识之Collection

集合基础知识--Collection Java中集合框架由常用的Collection接口和Map接口组成,而Collection接口又有两个子接口,是List接口和Set接口,常用的集合框架由这三个类组成. List接口的功能方法 List的使用最为简单,创建集合,通过add方法添加元素,get方法获取元素,通过迭代器获取元素.List接口存放的数据无序的,添加速度快,但是查询速度慢,因为查询的时候必须遍历,每次都重头开始,效率较低.常用实现类有ArrayList,LinkedList. Lis

黑马程序员——集合基础知识(泛型)

集合:泛型基础知识 泛型.(泛型就是类型参数化,默认的时object,虽然不用强制类型转换,这个就要你自己去写特性方法,比如compareto是string的特有方法吧,你可以写但是父类肯定调用不了) itnex t对象都是obj要使用对象的特性功能必须强.编译的时候没问题,因为都不知道你会传什么对象,你橙子也可以当作apple来传,设计的时候并不知道! 泛型作用.1.用于解决安全问题.运行时期出现的问题classcastexception转移到编译时期.2.迭代器里面的itnext()不用强转

黑马程序员——集合基础知识(Collection)

集合基础知识 数组:长度固定,可存基本数据和对象. 集合:只能放对象,不固定.容器也有共性,不断抽取成一个体系,集合框架.参阅顶层创建底层.顶层是collection.collection里有两个常见的接口,List和Set.常见集合有Arraylist,linkedlist,vector,hashSet TreeSet.为什么会出现这么多的容器呢,因为每一个容器对数据的存储方式都有不一样,.这个存储方式称之为数据结构!!因为他们的特点不一样 list因为有脚标存储和删除的效率很低,Set的效率

黑马程序员——集合基础知识(Map)

Map概念 要同时存储两个元素,他们之间有映射关系,每个键不能重复,每个键只能映射到一个值. 存储键值对,并且键是唯一的. 1.添加. put()如果添加的键原来有值,后添加的值会覆盖前面的值,并返回之前的值. 2.删除 remove()按键删除. 3.判断 4.获取 get(object key) size() value()拿值value返回的是值的集合... HashTable 底层是哈西数据结构,不可以存入null键null值,线程同步. HashMap 底层是哈西表数据结构,允许使用n

javaAPI_集合基础_Collection

集合基础1_集合概述以及Collection集合 1.为什么会出现集合? 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储. 而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的知识里面,有哪些是容器类型的呢? 数组和StringBuffer.但是呢?StringBuffer的结果是一个字符串,不一定满足我们的要求,所以我们只能选择数组,这就是对象数组. 而对象数组又不能适应变化

List集合基础增强底层源码分析

List集合基础增强底层源码分析 作者:Stanley 罗昊 集合分为三个系列,分别为:List.set.map List系列 特点:元素有序可重复 有序指的是元素的添加顺序,也就是说,元素被第一个存进去的时候,它就在第一位,这就是list集合的元素添加顺序: 通常情况下我们所说的有序有两个概念,第一个是添加顺序,第二个是大小顺序(实际上就是元素值的大小) List下面重点关注两个实现类分别是: ArrayList LinkedList ArrayList ArrayList底层实现是数组,既然

Java的集合基础

Collection集合的概念:(因数组长度是固定死的,使用不方便所以引入集合) 在Java编程中,用于装载其它各种各样对象(引用类型)的东西,叫容器. 数组是种容器,集合也是种容器,容器在Java中有Collection--接口. Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的"子接口&quo