zoukankan      html  css  js  c++  java
  • JAVA_SE_笔记整理(集合一)

    集合一

    1、集合概述

    为什么出现集合类?

    集合的存在是为了完善数组的功能

    数组和集合类同是容器,有何不同?

    数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储同一数据类型,集合只能存在引用对象。

    集合类的特点:

    集合只用于存储对象,集合长度可变,集合可以存储不同类型的对象

    2Collection接口概述

    collection概述

    Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。

    collection接口成员方法

    boolean add(E e) // 添加元素,成功返回true,失败返回false

    boolean remove(Object o) // remove移除指定元素,成功返回true否则false

    void clear() // 清除所有元素

    boolean contains(Object o) // 是否包含该元素包含为true,否则为false

    boolean isEmpty() // 是否为空,为空返回true,否则false

    int size() // 返回集合长度。

    boolean addAll(Collection c) // 添加所有元素

    boolean removeAll(Collection c) // 移除所有元素

    boolean containsAll(Collection c) // 判断参数集合是否被包含

    boolean retainAll(Collection c) // 将参数以外集合的元素移除

    Object[] toArray()

    把集合转成数组,可以实现集合的遍历

    Iterator iterator()

    迭代器,集合的专用遍历方式

    3Iterator接口

    Iterator接口概述

    对 collection 进行迭代的迭代器

    依赖于集合而存在

    成员方法:

    boolean hasNext() // 判断是否存在下一个元素

    E next() // 返回下一个元素

    4List接口概述

    List接口概述:

    有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

    与 set 不同,list列表通常允许重复的元素。

    List案例

    存储字符串并遍历

    存储自定义对象并遍历

    List接口成员方法

    void add(int index,E element) // 给指定下标的位置加入元素

    E remove(int index) // 删除指定元素

    E get(int index) // 获取指定下标的元素

    E set(int index,E element) // 设置指定下标的元素

    ListIterator listIterator() // 获取迭代器进行遍历

    5ListIterator接口的成员方法

    boolean hasPrevious()

    E previous()

    6常见数据结构

    栈 先入后出,后入先出

    队列 先入先出,后入后出

    数组 方便查找,不方便增删

    链表 方便增删,不方便查找

    哈希表

    7ArrayList类概述及使用

    ArrayList类概述

    底层数据结构是数组,查询快,增删慢

    线程不安全,效率高

    ArrayList案例

    存储字符串并遍历

    存储自定义对象并遍历

     

    8Vector类概述及使用

    Vector类概述

    底层数据结构是数组,查询快,增删慢

    线程安全,效率低

    Vector类特有功能

    public void addElement(E obj) 添加元素

    public E elementAt(int index) 获取指定元素

    public Enumeration elements() 遍历

    Vector案例

    存储字符串并遍历

    存储自定义对象并遍历

    9LinkedList类概述及使用

    LinkedList类概述

    底层数据结构是链表,查询慢,增删快

    线程不安全,效率高

    LinkedList类特有功能

    public void addFirst(E e)及addLast(E e)

    public E getFirst()及getLast()

    public E removeFirst()及public E removeLast()

    练习重点collection,list,ArrayList,vector,LinkedList,遍历有三种方式,迭代器,for,增强for。

    10、泛型

    为什么会有泛型呢?

    早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。

     

    泛型应用:

    泛型的作用位置类,接口,方法

    泛型类:

    将泛型定义到类上的类称为泛型类

    格式:public class 类名<泛型类型, 泛型类型, … 泛型类型>

    注意:泛型类必须是引用类型

    泛型接口:

    把泛型定义到接口上

    格式:public interface 接口名<泛型, 泛型>

    泛型方法:

    把泛型定义到方法上

    格式:public <泛型类型>  返回值类型 方法名称(泛型类型) {}

    泛型最重要的作用,规定参数以及返回值类型。

     

    泛型高级(通配符)

    泛型通配符<?>

    任意类型,如果没有明确,那么就是Object以及任意的Java类了

    ? extends E

    向下限定,E及其子类

    ? super E

    向上限定,E及其父类

  • 相关阅读:
    xheditor编辑器自动上传外链图片及QQ截图等(升级支持webp格式)
    jQuery对checkbox的各种操作
    Jquery过滤选择器,选择前几个元素,后几个元素,内容过滤选择器等
    Java8新特性之forEach+Lambda 表达式遍历Map和List
    My97日期控件My97 DatePicker选择每月最后一天(周6周日不能选,节假日不能选,高亮每个月最后一个股票交易日)
    算法系列:日历算法
    mysql 将多个查询结果合并成一行
    js判断浏览器类型以及语言
    升级至 spring-5.3.0 关于 jdbcTemplate.query(sql, parameters, rowMapper) 的解决
    解决 redis Increased maximum number of open files to 10032 (it was originally set to 256).
  • 原文地址:https://www.cnblogs.com/songliuzhan/p/12624134.html
Copyright © 2011-2022 走看看