zoukankan      html  css  js  c++  java
  • 框架集合——Java面向对象基础(33)

    集合

    集合:集合就是用于存储各种数据类型(元素类型可以不同、集合长度可变、空间不固定。)的一个容器。

    Java中提供了强大的api    java.util包提供了各种接口和类供我们使用

     

                                   集合框架的接口及类的详解图

    Collection:  一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。

    List接口:一列数据,数据内容可以重复,以元素安插的次序来放置元素,不会重新排列。

    Set接口:一列数据,数据内容不能重复,使用自己内部的一个排列机制放置元素。

    Map接口:一列数据对,使用自己内部的一个排列机制放置元素。

    List接口

    ArrayList: 基于数组的方式实现,随机访问效率相对较高,插入、删除效率相对较低。初始容量默认是10,超过容量后就按当前容量的一半去增加。

    掌握ArrayList方法:

    add(E e)  添加元素

    get(int index)  根据索引获取元素

    size()  获取列表元素的个数

    remove(int index)  移除指定位置的元素(注意:遍历移除元素时,容易出错。解决办法有两种:1、将指针再向前移,2、采用迭代器)

    ArrayList泛型的定义方式

        //对象<Integer> 泛型:约束它的存储数据类型   

    //注意:泛型<引用类型>,如果放置基本数据类型需要用其包装类才可。

    ArrayList<Account>  arrayList01 = new ArrayList<Account>();

    arrayList01.add(ac1);

    arrayList01.add(ac2);

    arrayList01.add(ac3);

    //有风险--遍历方式获取每个元素

    for(Account ac : arrayList01){

    System.out.println(ac.getAccountNo());

    }

    LinkedList:基于链表的方式实现,插入、删除效率相对较高,随机访问效率相对较低。提供了针对第一个和最后一个元素操作的具体方法。

    addFirst(E e)

    addLast(E e)

    removeFirst()

    ……

        其他方法和ArrayList差不多

    Vector它的用法和特点和ArrayList差不多,不同的是Vector是线程安全的,效率低,使用频率少。

    LinkedList>ArrayList>Vector

    Set接口

    Set接口:一列数据,数据内容不能重复,使用自己内部的一个排列机制放置元素。

    常用的方法:

    add()  —— 向集合中添加元素(增)

    remove(Object o) – 将元素从集合中移除(删)

    size() —— 查看集合长度

    HashSet:元素不能重复,无序(按插入顺序)。可以为null、用迭代器方式遍历。

    TreeSet:元素不能重复,无序(按插入顺序)。不能null、用迭代器方式遍历。内置的排序机制自然排序(对象不能直接排序:需要两种方式制定排序规则……Comparable、Comparator)

    HashSet:速度快,不排序。 --使用频率较高

    TreeSet:速度慢,排序。

    Map接口

    Map接口不是Collection接口的继承。Map接口用于维护键/值对(key/value pairs)。每个条目包括单独的两部分。

    常用方法:

    put() 将键值对存入集合

    get() 根据键取出元素的值

    keySet()           将Map中的所有键取出形成一个Set

    values()           将Map中的所有值取出形成一个Collection

    remove() 根据键移除值

    HashMapkey采用HashSet机制

    TreeMapkey采用TreeSet机制。

    Hashtable:线程安全、key value都不允许为null

    补充Collections集合框架中提供的工具类

    Collections等价于数组中Arrays

  • 相关阅读:
    JUC------03
    const、define 和 static 的区别
    Mac Catalina 下 gdb codesign问题解决
    k8s 辨析 port、NodePort、targetPort、containerPort 区别
    centos7.8 安装部署 k8s 集群
    【小白学PyTorch】21 Keras的API详解(下)池化、Normalization层
    【小白学PyTorch】21 Keras的API详解(上)卷积、激活、初始化、正则
    【小白学PyTorch】20 TF2的eager模式与求导
    【小白学PyTorch】19 TF2模型的存储与载入
    【小白学PyTorch】18 TF2构建自定义模型
  • 原文地址:https://www.cnblogs.com/Unlimited-Rain/p/12588466.html
Copyright © 2011-2022 走看看