zoukankan      html  css  js  c++  java
  • 集合

           Set接口。set集合不允许包含相同的元素。set判断两个对象是否相同是根据equals方法。如果两个对象用equals方法返回的是true,set不会接受这两个对象。

           HashSet是set接口的典型实现,HashSet按hash算法来存储集合中的元素。因此具有很好的存储和查找性能。HashSet判断两个元素的标准是两个元素的equals方法比较相等,同时两个对象的hasCode()方法返回值也相等。HashSet可以保存null元素。

           List集合代表一个有序集合。集合中的每个元素都有其对应的顺序索引。Arraylist和vector是list接口的两个典型实现。他们之间的显著区别就是:vector是线性安全的,而arraylist不是。它们两个都是基于数组实现的list类。List还有一个基于链表实现的LinkedList类。当插入、删除元素的速度非常快。这个类比较特殊,功能也特别多,即实现了List接口,也实现了Dueue接口(双向队列)。可以当成双向队列使用,也可以当成栈使用。

           Queue用于模拟队列的数据结构。LinkedList和ArrayDueue是其两个比较常用的实现类。

           Map用于保存具有映射关系的数据。Map接口有如下几个常用的实现类:HashMap、HashTable、TreeMap。TreeMap是基于红黑树对TreeMap中所有key进行排序。HashMap和HashTable主要区别有两点:1、Hashtable是线性安全的,因此性能差些。2、HashMap可以使用null作为key或者value。

            ArrayList和LinkedList。ArrayList是一种顺序存储的线性表,其底层是采用数组实现的,而LinkedList是链式存储的线性表。其本质就是一个双向链表。对于随机存储比较频繁的元素操作应选用ArrayList,对于经常需要增加、删除元素应该选用LinkedList。但总的来说ArrayList的总体性能还是优于LinkedList。

           HashSet与HashMap的性能选项。主要有两个方面:容量和负载因子(尺寸/容量)。较低负载因子会增加查询数据的性能,但是会降低hash表所占的内存开销。较高负载因子则反之,一般对数据的查询比较频繁,所以一般情况下初始容量应该大一点,但也不能太大,否则浪费内存空间。

  • 相关阅读:
    [HEOI2015]兔子与樱花
    Qt5——从零开始的Hello World教程(Qt Creator)
    qt利用QT designer构建第一个界面helloworld工程
    兆芯处理器的发展之路 从南北桥架构到开先KX-5000系列
    SPEC CPU 使用简介
    国产龙芯3A3000处理器评测:与英特尔差距明显
    测试
    【转载】ltp压力测试结果分析脚本
    H5开发基础之像素、分辨率、DPI、PPI
    【转载】分辨率和像素是什么关系?
  • 原文地址:https://www.cnblogs.com/syl1104/p/3700049.html
Copyright © 2011-2022 走看看