zoukankan      html  css  js  c++  java
  • java学习笔记之集合家族1

    集合

    集合介绍:

      由于数组中存放对象,对对象操作起来不方便。java中有一类容器,专门用来存储对象。

      集合与数组的区别:

        1.数组的长度固定的,而集合长度时可变的

        2.数组只能储存同一类型的元素,而且能存基本数据类型和引用数据类型。集合可以存储不同类型的元素,只能存储引用数据类型

    Collection接口描述:

      java.util.Collection 接口是集合中的顶层接口

      Collection接口常用的子接口有List 接口和Set接口

      List接口中常用的子类有:ArrayList类(数组列表)和LinkedList(链表)

      Set接口中常用的子类有:HashSet (哈希表)和LinkedHashSet(基于链表的哈希表)

    Collection接口中的基本方法:

      1.添加元素

    boolean add(E e)

      2.删除集合中指定元素

    boolean  remove(Object  o);

      3.判断集合中是否包含指定元素

    boolean contains(Object  o);

      4.获取集合中元素的个数

    int  size();

      5.清空集合中的元素,集合还是存在的

    void clear();

      6.将集合转换成数组,数组储存的数据类型是Object

    Object[] toArray();

    Iterator迭代器

      迭代器的好处:屏蔽了集合之间的不同,可以使用相同的方式取出

      Collection集合元素的通用获取方式:在取出元素之前先判断集合中有没有元素。如果有,就把这个元素取出来,继续再判断,如果还有就再取出来,一直把集合中的所有元素全部取出来,这种取出元素的方式专业术语称为迭代。

       Collection中有一个抽象方法iterator方法,所有的Collection子类都实现了这个方法;返回一个Iterator对象

    Iterator<E>     iterator();

    迭代器的两个方法:

      1.判断还有没有下个元素可以迭代,如果有就返回true

    boolean  hasNext();

      2.返回迭代下一个元素值,并将指针向后移动一位

    E  next();

      注意:在进行集合元素取出的时候,如果集合中没有元素了,还继续使用next()方法的话,将发生NoSuchElementException没有集合元素的错误

    修改并发异常:

      产生原因:在迭代集合中元素的过程中,集合的长度发生改变(进行了元素增加或者元素删除的操作);

      增强for的底层原理也是迭代器,所以也需要避免这种操作;

      有些迭代器就避免了这样的问题,如listiterator

    增强for:

      jdk1.5之后出现的一个高级for循环,专门用来遍历集合和数组,他的内部原理其实是个迭代器,所以在遍历的时候,不能对集合中的元素进行操作;

      格式:

    for(元素的数据类型  变量:集合或者是数组){
    
    }

      好处:代码减少,方便遍历

      弊端:没有索引,不能操作容器里的元素

  • 相关阅读:
    Linux下环境变量配置错误 导致大部分命令不可以使用的解决办法
    问题1:kafka的message包括那些?
    zabbix4.4
    jdk1.8安装
    linux 环境python3安装
    Zabbix应用监控
    zabbix4.0.21部署
    AtCoder Beginner Contest 187
    Codeforces Round #690 (Div. 3)
    AtCoder Beginner Contest 185
  • 原文地址:https://www.cnblogs.com/xuzhaocai/p/8059577.html
Copyright © 2011-2022 走看看