栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java基础13

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java基础13

1.集合框架

      集合框架---java做好的用来管理乱七八糟的一堆数据的java类库
      集合----[乱七八糟的一堆]
      框架---做好的java类库

     java中的集合框架总体被分为2个大部分
    第一个大部分是用来处理单列数据的集合,最大的接口是Collection接口

    Collection接口之下有两个子接口:List接口/Set接口
    List接口是用来处理有序的单列数据,可以有重复的元素。

        ArrayList类
            1.用来处理有序的单列数据,可以有重复的元素。
            2.添加的元素会自动扩展。
            3.动态数组结构,查询速度快,添加删除速度慢
        LinkedList类
            1.用来处理有序的单列数据,可以有重复的元素。
            2.添加的元素会自动扩展。
            3.双向链表结构,查询速度慢,添加删除速度快

Set接口是用来处理无序的单列数据,没有重复的元素,重复的元素算一个。
        HashSet类
            用来处理无序的单列数据,没有重复的元素,重复的元素算一个。
            LinkedHashSet类
                用来处理无序的单列数据,没有重复的元素,重复的元素算一个。
第二个大部分是用来处理键值对数据的集合,最大的接口是Map接口 
        例如: name[键]=zhangsan[值]   输的目录
        HashMap类
            1.用来处理键值对数据的集合
            2.允许有null【键--null  值--null】
        Hashtable类
            1.用来处理键值对数据的集合
            2.不允许有null
        ConcurrentHashMap类
            支持检索的完全并发性和更新的高预期并发性的哈希表

2.关于List接口下的常用类    1.ArrayList类

        1.用来处理有序的单列数据,可以有重复的元素。
        2.添加的元素会自动扩展。
        3.动态数组结构,查询速度快,添加删除速度慢
        构造方法:
        ArrayList() 构造一个初始容量为10的空列表。 
        ArrayList(Collection c) 通过实现Collection 接口的子类/子接口对象创建一个列表ArrayList(int initialCapacity) 构造具有指定初始容量的空列表。 
        实例方法:
        boolean    add(Object o) 将指定的元素追加到此列表的末尾。 
        boolean    contains(Object o) 如果此列表包含指定的元素,则返回 true 。 
        Object     get(int index) 返回此列表中指定位置的元素。 
        int    indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
        int    lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。 
        Object     remove(int index) 删除该列表中指定位置的元素。 
        boolean    remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。 
        Object     set(int index, Object  element) 用指定的元素替换此列表中指定位置的元素。 
        int    size() 返回此列表中的元素数。 
        boolean    isEmpty() 如果此列表不包含元素,则返回 true 。
        void    clear() 从列表中删除所有元素。 
        Iterator    iterator() 以正确的顺序返回该列表中的元素的迭代器。

   2.LinkedList类

       1.用来处理有序的单列数据,可以有重复的元素。
        2.添加的元素会自动扩展。
        3.双向链表结构,查询速度慢,添加删除速度快
        构造方法:
        LinkedList() 构造一个空列表。 
        LinkedList(Collection c)通过一个实现Collection接口的子类/子接口对象创建一个列表
        实例方法:
        boolean    add(Object o) 将指定的元素追加到此列表的末尾。 
        boolean    contains(Object o) 如果此列表包含指定的元素,则返回 true 。 
        Object     get(int index) 返回此列表中指定位置的元素。 
        int    indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
        int    lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。 
        Object     remove(int index) 删除该列表中指定位置的元素。 
        boolean    remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。 
        Object     set(int index, Object  element) 用指定的元素替换此列表中指定位置的元素。 
        int    size() 返回此列表中的元素数。 
        boolean    isEmpty() 如果此列表不包含元素,则返回 true 。
        void    clear() 从列表中删除所有元素。 
        Iterator    iterator() 以正确的顺序返回该列表中的元素的迭代器。
        多出一组对第一个元素和最后一个元素的操作方法
        void    addFirst(Object e) 在该列表开头插入指定的元素。 
        void    addLast(Object  e) 将指定的元素追加到此列表的末尾。 
        Object     getFirst() 返回此列表中的第一个元素。 
        Object     getLast() 返回此列表中的最后一个元素。
        Object     removeFirst() 从此列表中删除并返回第一个元素。
        Object     removeLast() 从此列表中删除并返回最后一个元素。 
        为什么LinkedList会比ArrayList多出一组对第一个元素和最后一个元素的操作方法?
        因为ArrayList是动态数组结构,他在查找第一个元素和最后一个元素的时很麻烦,而LinkedList采用的是双向链表结构,这种结构在查找第一个元素和最后一个元素的时候是最快的

3.关于Set接口的常用类      1.HashSet类

          用来处理无序的单列数据,没有重复的元素,重复的元素算一个。
    构造方法:
    HashSet() 构造一个新的空集合; 默认初始容量(16)和负载因子(0.75)。 
    HashSet(Collection c) 构造一个包含指定集合中的元素的新集合。 
    HashSet(int initialCapacity) 构造一个新的空集合; 具有指定的初始容量和默认负载因子(0.75)。 
    HashSet(int initialCapacity, float loadFactor) 具有指定的初始容量和指定的负载因子。 
    实例方法
    boolean    add(Object e) 将指定的元素添加到此集合(如果尚未存在)。 
    void    clear() 从此集合中删除所有元素。 
    boolean    contains(Object o) 如果此集合包含指定的元素,则返回 true 。 
    boolean    isEmpty() 如果此集合不包含元素,则返回 true 。 
    Iterator    iterator() 返回此集合中元素的迭代器。 
    boolean    remove(Object o) 如果存在,则从该集合中删除指定的元素。 
    int    size() 返回此集合中的元素数(其基数)。

    2.LikedHashSet类

        ikedHashSet类是HashSet类的子类
    
    构造方法:
    LikedHashSet() 构造一个新的空集合; 默认初始容量(16)和负载因子(0.75)。 
    LikedHashSet(Collection c) 构造一个包含指定集合中的元素的新集合。 
    LikedHashSet(int initialCapacity) 构造一个新的空集合; 具有指定的初始容量和默认负载因子(0.75)。 
    LikedHashSet(int initialCapacity, float loadFactor) 具有指定的初始容量和指定的负载因子。 
    实例方法
    boolean    add(Object e) 将指定的元素添加到此集合(如果尚未存在)。 
    void    clear() 从此集合中删除所有元素。 
    boolean    contains(Object o) 如果此集合包含指定的元素,则返回 true 。 
    boolean    isEmpty() 如果此集合不包含元素,则返回 true 。 
    Iterator    iterator() 返回此集合中元素的迭代器。 
    boolean    remove(Object o) 如果存在,则从该集合中删除指定的元素。 
    int    size() 返回此集合中的元素数(其基数)。

4.关于Map接口的常用类

         Map接口用来处理键值对数据的集合
    键值对数据--一个完整的数据是由键和值两部分组成的一个数据值
    例如: 书的目录就是典型的键值对数据
          标题-----页码
            键--------值

1.HashMap类

        1.允许null的值和null键
        2.数据保存是无序的
        3.重复的键被算作是一个数据。
    构造方法:
    HashMap() 构造一个空的 HashMap ,默认初始容量(16)和默认负载系数(0.75)。 
    HashMap(int initialCapacity) 构造一个空的 HashMap具有指定的初始容量和默认负载因子(0.75)。 
    HashMap(int initialCapacity, float loadFactor) 构造一个空的 HashMap具有指定的初始容量和负                            载因子。 
    HashMap(Map m) 构造一个新的 HashMap与指定的相同的映射 Map 。 
    实例方法:
    void    clear() 清空集合。 
    Object     put(Object key, Object value) 向集合中添加键值对数据
    boolean    containsKey(Object key) 判断集合中是否包含指定的键
    boolean    containsValue(Object value) 判断集合中是否包含指定的值
    Object     get(Object key) 根据指定的键得到该键对应的值
    boolean    isEmpty() 判断集合是否为空。
    int    size() 得到集合中键值对元素的个数
    V    remove(Object key)  根基指定的键删除对应的键值对数据值
    Set    keySet() 得到集合中所有的键保存到Set集合中
    Collection    values() 得到集合中所有的值保存到Collection集合中 
    Set>    entrySet() 得到集合中所有的键值对数据Set集合中

//Set>	entrySet() 得到集合中所有的键值对数据Set集合中
//1.需要给HashMap设置键和值的数据类型
// HashMap  map=new HashMap();
//2.不需要使用set接口对象保存数据,直接遍历使用就可以
for(Map.Entry  entry:map.entrySet()){
//使用entry对象的getKey()得到键
//使用entry对象的getValue()得到值
   System.out.println(entry.getKey()+":"+entry.getValue());
        }
2.Hashtable类

    1.数据保存是无序的
        2.不能有null键/null值
        3.重复的键被算作是一个数据。
        4.线程安全
    构造方法:
    Hashtable() 构造一个新的,空的散列表,默认初始容量(11)和负载因子(0.75)。 
    Hashtable(int initialCapacity) 构造一个新的,空的哈希表,具有指定的初始容量和默认负载因子0.75 
    Hashtable(int initialCapacity, float loadFactor) 构造一个新的,空的哈希表,具有指定的初始容量和指定的负载因子。 
    Hashtable(Map t) 构造一个与给定地图相同的映射的新哈希表。 
    实例方法:
    void    clear() 清空集合。 
    Object     put(Object key, Object value) 向集合中添加键值对数据
    boolean    containsKey(Object key) 判断集合中是否包含指定的键
    boolean    containsValue(Object value) 判断集合中是否包含指定的值
    Object     get(Object key) 根据指定的键得到该键对应的值
    boolean    isEmpty() 判断集合是否为空。
    int    size() 得到集合中键值对元素的个数
    V    remove(Object key)  根基指定的键删除对应的键值对数据值
    Set    keySet() 得到集合中所有的键保存到Set集合中
    Collection    values() 得到集合中所有的值保存到Collection集合中 
    Set>    entrySet() 得到集合中所有的键值对数据Set集合中
    Enumeration    keys() 返回此散列表中键的枚举。 
    Enumeration    elements() 返回此散列表中值的枚举。

3.TreeMap类--红黑树基于NavigableMap实现【有序】

        1.按照键的字母顺序排列(添加键值对数据时,键的数据类型要一致,否则无法排序,运行时会报错)
        2.键不能为null
        3.重复的键被算作是一个数据。
        4.非线程安全
    构造方法
    TreeMap() 使用其键的自然排序构造一个新的空树状图。 
    TreeMap(Map m) 构造一个新的树状图,其中包含与给定地图相同的映射,根据其键的自然顺序进行排序 。
    实例方法:
    void    clear() 清空集合。 
    Object     put(Object key, Object value) 向集合中添加键值对数据
    boolean    containsKey(Object key) 判断集合中是否包含指定的键
    boolean    containsValue(Object value) 判断集合中是否包含指定的值
    Object     get(Object key) 根据指定的键得到该键对应的值
    boolean    isEmpty() 判断集合是否为空。
    int    size() 得到集合中键值对元素的个数
    V    remove(Object key)  根基指定的键删除对应的键值对数据值
    Set    keySet() 得到集合中所有的键保存到Set集合中
    Collection    values() 得到集合中所有的值保存到Collection集合中 
    Set>    entrySet() 得到集合中所有的键值对数据Set集合中

4.ConcurrentHashMap类与HashMap相似

    ConcurrentHashMap类线程安全支持检索是的高并发处理。
    如果需要线程安全的并发实现,那么建议使用ConcurrentHashMap代替Hashtable。

Collections类
    Collections 类是Java提供的一个操作 Set、List 和 Map 等集合的工具类,服务于Collection框架,不能实例化。
    Collections 类提供了许多操作集合的静态方法,我们借助这些静态方法可以实现集合元素的排序、查找替换和复制等操作。
    sort()排序
    reverse()反转方法
Collections和Collection的区别
    Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
    Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881672.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号