javaSE 第十四天

Day14

----------------------------------------------------------------------------------

今天内容:

   (1)Collection集合

   (2)List集合

   (3)Queue集合

   (4)Set集合

1.Collection集合

1.1 Collection集合的常用方法(练熟、记住)

    boolean add(E e) - 用于将参数指定的元素e放入当前集合中。

    boolean addAll(Collection<? extends E> c) 

         - 用于将参数集合c中的所有元素放入当前集合中。

扫描二维码关注公众号,回复: 3284578 查看本文章

   

    boolean remove(Object o) - 用于将参数指定的元素o从当前集合中删除。

    boolean removeAll(Collection<?> c) 

         - 用于将参数集合c中的所有元素从当前集合中删除。

    void clear() - 用于清空当前集合中的所有元素。

    

    boolean contains(Object o) - 用于判断当前集合中是否包含参数指定的元素o。

    boolean containsAll(Collection<?> c) 

         - 用于判断当前集合中是否包含参数c中的所有元素。

   

    boolean isEmpty() - 用于判断当前集合是否为空。

    int size() - 用于获取集合中元素的个数。

    boolean retainAll(Collection<?> c) 

         - 用于计算调用集合和参数集合之间的交集并保留到当前集合覆盖原有数据。

         - 当前集合若发生改变则返回true,否则返回false。  

2.List集合(重中之重)

2.1 基本概念

   java.util.List接口是Collection接口的子接口,元素拥有先后放入次序,并且允许重复。

   该接口的主要实现类:ArrayList类、LinkedList类、Stack类、Vector类(过时 笔试题)。

   其中ArrayList类的底层是采用动态数组进行数据的管理,访问方便,增删不方便。

   其中LinkedList类的底层是采用双向链表进行数据的管理,访问不方便,增删方便。

   其中Stack类的底层是采用动态数组实现的,该类主要描述具有后进先出特征的数据结构,简称为栈(last in first out LIFO)。

   其中Vector类的底层是采用动态数组实现的,该类与ArrayList类相比属于线程安全的类,因此效率比较低,因此推荐使用ArrayList类。

2.2 常用的方法(练熟、记住)

   void add(int index, E element) - 用于将元素element插入到下标为index的位置。

   boolean addAll(int index, Collection<? extends E> c) 

       - 用于将集合c中的所有元素插入到下标index位置。

   E remove(int index) - 用于删除下标为index位置的元素并返回。

   E set(int index, E element) - 用于将下标为index位置的元素替换为element并返回。

   E get(int index) - 用于返回下标index位置的元素。

2.3 泛型机制

   通常情况下集合中可以存放不同类型的对象,是因为集合将这些对象都看做Object类型放入的,当取出集合中元素时也是Object类型,为了表达该数据最真实的类型就需要强制类型转换,而强制类型转换可能引发类型转换异常。

   为了避免上述问题的发生,从jdk1.5开始增加泛型机制,也就是在集合名称的右侧使用<数据类型>的方式明确要求该集合中可以存放的元素类型,若放入其他类型的元素则编译报错,如

   List<String> lt1 = new LinkedList<String>();

   泛型的本质就是参数化类型,也就是让数据类型作为参数进行传递,其中集合名称右侧的E相当于该集合的形参变量负责占位,当创建集合时右侧的数据类型相当于实参用于给形参变量E进行初始化,由于实参传递的类型可以多种多样很广泛,因此得名为"泛型".

如:

   //int i = 2;                        //E = String;

   //int i = 5;                        //E = Student;

   void show(int i){ =>形式参数        public class LinkedList<E>{ => 形式参数

       ...                                  ...

   }                                   }

   

   show(2); =>实际参数                 new LinkedList<String>();   =>实际参数

   show(5); =>实际参数                 new LinkedList<Student>();  =>实际参数

3.Queue集合(重点)

3.1 基本概念

   java.util.Queue接口是Collection接口的子接口,与List接口是平级关系。

   该接口主要描述具有先进先出特征的数据结构,叫做队列(first in first out FIFO)。

   该接口的主要实现类:LinkedList类,之所以选择该类是因为该类在增删方面有优势。

   

3.2 常用的方法

   boolean offer(E e) - 用于将元素e插入到当前队列的末尾。

   E poll() - 用于移除并返回当前队列的队首元素,若队列为空,则返回null。

   E peek() - 用于获取当前队列的队首元素,若队列为空,则返回null。

作业:

   1.复习和练习集合的常用方法并进行整理。

   2.查询java.util.Stack类,实现将数据11 22 33 44 55压入栈中,然后打印栈顶元素,

     然后再实现将所有元素依次出栈。

   3.使用List集合实现简易的学生信息管理系统,要求打印字符界面提示用户选择相应的功能,根据用户的输入去实现增加、删除、修改、查找以及遍历所有学生信息的功能。

   其中学生的信息有:学号、姓名、年龄。

   提示:

      尽量拆分为多个.java文件    

 

猜你喜欢

转载自blog.csdn.net/zgzdcxy/article/details/82802802