zoukankan      html  css  js  c++  java
  • 四种常见的数据结构、LinkedList、Set集合、Collection、Map总结

    四种常见的数据结构:
        1.堆栈结构:
            先进后出的特点。(就像弹夹一样,先进去的在后进去的低下。)
        2.队列结构:
            先进先出的特点。(就像安检一样,先进去的先出来)
        3.数组结构:
            查找元素快,但是增删元素慢
        4.链表结构:
            增删元素快,但是查找元素慢

    LinkedList:(List接口下的一个子类,和ArrayList是同级别关系)
        1.底层是链表结构
        2.它的一些特有方法:
            addFirst(E  e) : 向集合中的开头添加元素
            addLast(E  e):向集合的末尾添加元素 
            getFirst():得到集合中的第一个元素
            getLast():得到集合中的最后一个元素
            removeFirst():删除集合中的第一个元素
            removeLast():删除集合中的最后一个元素
            pop(E  e) : 从集合的最上面弹出一个元素
            push():向集合的最上面添加元素
            isEmpty() : 判断集合中是否有为空
        3.在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。
            使用的方法是:调用addFirst(E  e) 方法和getFirst() 方法

    Set集合(Set是一个接口,和List一样,它俩也是同级别关系)
        Set集合的遍历方式只有两种,1.  增强for    2.  迭代器
        Set集合特点:
            唯一性,元素不重复
        1.Set的子类有:
            HashSet、LinkedHashSet
        2.HashSet:
            a.HashSet是无序的,存取顺序不一样
            b.底层是哈希表结构,通常自定义对象是需要重写HashCode方法和equals方法
            c.HashSet是使用HashCode方法和equals方法来保证元素唯一的
            d.判断原理是:
                先判断HashCode方法
                    相同:
                        不添加
                    不相同:判断equals方法:
                        不相同:添加
                        相同:不添加
    LinkedHashSet:
        1.LinkedHashSet是有序的,存取顺序是一样的
        2.底层是链表+哈希表结构。
        3.通过链表来保证有序。通过哈希表来保证元素的唯一。

    Collection总结:
        1.子类:
            List、Set(两个都是接口)
                List子类:
                    ArrayList
                    LinkedList
                Set子类:
                    HashSet
                    LinkedHashSet
        2.Collection的方法:
            boolean  add(Object  e): 添加
            void   clear(): 清空
            boolean   remove(Object o):删除
            boolean  contains(Object o): 包含
            boolean  isEmpty():是否为空
            Iterator  iterator():迭代器
            int   size(): 集合长度
            Object   toArray(): 将集合存到数组中
        3.迭代器:
            两个方法:
                hasNext():是否有下一个元素
                next(): 获取下一个元素
        4.List和Set的区别:
            List:
                有序,且可有重复元素
            Set:
                它是一个无序的集合(元素存与取的顺序可能不同)
                不可以有重复的元素
        5.List集合中的特有方法:(有角标的都是List集合中的)
            void add(int index, Object element)   将指定的元素,添加到该集合中的指定位置上
            Object get(int index)     返回集合中指定位置的元素。
            Object remove(int index)    移除列表中指定位置的元素, 返回的是被移除的元素
            Object set(int index, Object element)   用指定元素替换集合中指定位置的元素,返回值的更新前的元素
        6.泛型:
            好处:
                提高了程序的安全性
                将运行时期的异常提到的编译时期
                避免了类型转换

    Map:(它也是一个接口,它是和Collection同级别的,它是一个双列集合)
        常用子类:
            HashMap<key , value>:
                泛型里存储键和值,键唯一,但是值可以重复。底层是哈希表结构,基本和HashSet集合差不多,在存储自定义对象时,需要重写HashCode方法和equals方法。无序。
            LinkedHashMap:
                底层是链表+哈希表结构。有序,存和取的顺序一致。
            方法:
                put(K,V):添加元素,相当于list集合中的add方法
                get(key):得到key对应的值。
        Map遍历(两种方式)
            1. keySet()方法
                转为Set对象,获取Map集合中的键集,存储到Set集合中
                然后可使用增强for或迭代器来获取键和值都通过,键来获取值。            
            2. entrySet()方法
                方法:
                    getey()
                    getValue()
                转为entry对象,获取Map集合中的键和值的映射关系,存储到entry对象中。
                然后,可以使用增强for或迭代器来获取键和值。
                都通过,键来获取值。

        Properties类(一般和流一块使用,它也是Map下的一个子类它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。
    (有和流技术相结合的方法。)

        1.public Object setProperty(String key, String value)调用 Map 的方法 put。
        2.public Set<String> stringPropertyNames()返回此属性列表中的键集, //keyset()方法
        3.public String getProperty(String key)用指定的键在此属性列表中搜索属性//get()方法
            写入文件的方法:
                store(Writer,”文件的描述信息”)
            读取文件的方法:
                load(Reader)

        可变参数:
            表现格式为:
                数据类型...   变量名
                相当于一个数组。

        Collections工具类
            方法
                shuff()随机打乱方法
                sort()排序方法,按照自然规律排序。

  • 相关阅读:
    java中map接口hashMap以及Enty之间的用法和关系
    Collection集合总结,List和set集合的用法,HashSet和LinkedHashSetde用法
    微信小程序开发攻略
    Java闰年的计算,Calendar的用法
    Java计算计算活了多少天
    Java用代码演示String类中的以下方法的用法
    Java判断一个字符串中有多少大写字母、小写字母和数字
    Java将一个字符串的首位改为大写后边改为小写的实现,String
    Java 获取一个字符串中,另一个字符串出现的次数
    linux下重命名文件或文件夹(linux)
  • 原文地址:https://www.cnblogs.com/rrong/p/12104291.html
Copyright © 2011-2022 走看看