zoukankan      html  css  js  c++  java
  • java数据结构

    一、List接口,有序的Collection接口,能够精确地控制每个元素插入的位置,允许有相同的元素

    1.链表,LinkedList实现了List接口,允许null元素,提供了get()、remove()、insert()方法,没有同步方法

    2.数组列表,ArrayList,可以动态变化容量的数组,非同步的

    数组列表中存放的是Object类型,因此在数组列表中存放的对象类型,以其原型的父类代替,提取其中的元素时要进行类型转换


    二、Set接口,不包含重复元素的Collection接口
    1.散列集,HashSet,实现了Set接口,非线性同步
    与链表和数组列表几乎类似,但在数据处理时,比使用链表进行数据处理花费时间更短,处理大数据时通常使用散列集


    2.树集,TreeSet,实现了Set接口,实现了排序功能,该集合中的元素默认按升序排列元素
    使用树集数据结构的对象,需要实现Comparable接口,树集输出的数据都是经过排序的


    三、Map接口,没有继承Collection接口,其提供key到value的映射,Map中不能包含相同的key,每个key只能映射一个value。
    1.散列表类,HashTable,继承了Map接口,非空(non-null)的对象都可作为key或value,是同步的
    添加数据:put(key,value);
    取出数据:get(key);
    特点:无序的,因此可以快速查找特定的元素

    构造函数:Hashtable(),初始容量11,负载因子0.75,即散列表中已经有75%的位置被放满,则进行再散列。
    负载因子越高(越接近1),则内存使用率越高,元素的寻找时间越长,反之,则内存浪费越多,寻找时间越短
    key的对象将通过计算散函数确定与之对应的value位置 ,因此key的对象需要实现hashCode()和equals()方法。
    两个对象相同,则它们的hashCode必须相同;两个对象不同,则它们的hashCode不一定不同。
    冲突:不同对象的hashCode相同,则称为冲突,冲突将导致操作散列表的时间开销增大。因此要同时复写equals()和hashCode()方法
    2.散列映射类,HashMap,与HashTable类似,不是HashMap是非同步的,且允许null

    3.树映像,TreeMap,输出的数据按照关键字排序了

  • 相关阅读:
    [转载]SQL Server行列转换实现
    [转载]依赖注入那些事
    [转载]MVC、MVP以及Model2(下)
    [转载]MVC、MVP以及Model2(上)
    SQL Server中CROSS APPLY和OUTER APPLY应用
    Open XML操作Excel导入数据
    centos7 firewall-cmd 理解多区域配置中的 firewalld 防火墙
    centos7 firewall-cmd 用活firewalld防火墙中的zone
    个税起征点上调,你每月能省多少?最后还有点凉水
    2018年中国500强排行榜
  • 原文地址:https://www.cnblogs.com/pangblog/p/3239124.html
Copyright © 2011-2022 走看看