1)::HashSet-------(内部为HashCode表数据结构)---(保证数据唯一,但不保证数据有序)

          不对数据进行排序,只是通过hashCode和equal对数据进行相同判定,如果相同就不存进去,输出时也不保证输出顺序.

2)::LinkedHashSet----(内部为二叉树数据结构)----(保证数据唯一,还保证数据有序)

             加入Linked一个词后,输出不再是无序的了,此时会按照先进先出的数序读取数据.

3)::ArrayList-------(内部为数组型数据结构--数据查询快)-------(不保证数据唯一,数据可以重复,并且数据有序,即先进先出进行数据读取)

          在判断元素相同时,使用的是元素的equals方法,在存储自定义数据时,需要对Object的equals方法进行复写,而不需要对HashCode进行复写,

          并且在使用remove删除元素时,也仅仅通过equals判断元素中是否有相同的元素,哪怕是删除一个新的对象元素,但是这个新的元素内容通过equals方法判断后                               发现现有元素中也也相同内容的元素,此时虽然2个元素的地址不同,但equals认为其为相同,也会将现有的元素删除. 而HsahSet在判断元素是否相同时,需要同时                             对Object的和equal进行复写.

4)::LinkedList-------(内部为链表数据结构---数据增删块)-------(不保证数据唯一,数据可以重复,并且数据有序,即先进先出进行数据读取)

--------------------------------------------------------------------------------------------------------------------------------------------------------------

[注]:

a.当元素自身已实现的Java.lang中的cmparable接口中compareTo方法时,以上集合必须强制根据compareTo方法对这些元素进行排序.

b.或者,在自定方法通过实现Comparator接口中的compare方法,并将该方法在构造集合初始化时将其传入集合,此后该集合将在存储元素时,强制使用该自定义排序方法对存入的元素进行比较排序.

HashSet和LinkedHashSet特点.的更多相关文章

  1. HashSet、LinkedHashSet、TreeSet

    以下内容基于jdk1.7.0_79源码: 关于HashSet.LinkedHashSet.TreeSet Set接口的实现类,最大特点是不允许出现重复元素: HashSet:基于HashMap实现,一 ...

  2. Java HashSet和LinkedHashSet的用法

    Java HashSet和LinkedHashSet的用法 类HashSet和LinkedHashSet都是接口Set的实现,两者都不能保存重复的数据.主要区别是HashSet不保证集合中元素的顺序, ...

  3. 规则集之探究何时使用HashSet、LinkedHashSet以及TreeSet?

    前言 Java集合框架三种主要类型的集合:规则集(Set).线性表(List).队列(Queue).Set用来存储不可重复的元素:List用来存储有元素构成的有序的集合:而Queue则用于存储用先进先 ...

  4. Java集合框架(二)—— HashSet、LinkedHashSet、TreeSet和EnumSet

    Set接口 前面已经简绍过Set集合,它类似于一个罐子,一旦把对象'丢进'Set集合,集合里多个对象之间没有明显的顺序.Set集合与Collection基本上完全一样,它没有提供任何额外的方法. Se ...

  5. 一、集合框架(关于ArrayList,LinkedList,HashSet,LinkedHashSet,TreeSet)

    一.ArrayList 解决了数组的局限性,最常见的容器类,ArrayList容器的容量capacity会随着对象的增加,自动增长.不会出现数组边界的问题. package collection;   ...

  6. 09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHashSet,TreeSet

    09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHas ...

  7. 复习java基础第三天(集合:Collection、Set、HashSet、LinkedHashSet、TreeSet)

    一.Collection常用的方法: Java 集合可分为 Set.List 和 Map 三种体系: Set:无序.不可重复的集合. List:有序,可重复的集合. Map:具有映射关系的集合. Co ...

  8. Set集合[HashSet,TreeSet,LinkedHashSet],Map集合[HashMap,HashTable,TreeMap]

    ------------ Set ------------------- 有序: 根据添加元素顺序判定, 如果输出的结果和添加元素顺序是一样 无序: 根据添加元素顺序判定,如果输出的结果和添加元素的顺 ...

  9. Java集合系列(三):HashSet、LinkedHashSet、TreeSet的使用方法及区别

    本篇博客主要讲解Set接口的三个实现类HashSet.LinkedHashSet.TreeSet的使用方法以及三者之间的区别. 注意:本文中代码使用的JDK版本为1.8.0_191 1. HashSe ...

  10. Java中的集合HashSet、LinkedHashSet、TreeSet和EnumSet(二)

    Set接口 前面已经简绍过Set集合,它类似于一个罐子,一旦把对象'丢进'Set集合,集合里多个对象之间没有明显的顺序.Set集合于Collection基本上完全一样,它没有提供任何额外的方法. Se ...

随机推荐

  1. HtmlAgilityPack.dll的使用 获取HTMLid

    简介 本文介绍net处理html页面元素的工具类(HtmlAgilityPack.dll)的使用,用途比较多的应该是例如采集类的功能,采集到的html字符串要怎样处理是一个头痛的问题,如果是截取就太麻 ...

  2. innobackupex的备份和恢复

      http://blog.itpub.net/15480802/viewspace-1173479/ 1 原理 分3个阶段:备份backup – 预恢复prepare  -- 恢复restore 注 ...

  3. 【ZZ】快速學會開發Android App

    http://www.cc.ntu.edu.tw/chinese/epaper/0022/20120920_2209.html 作者:吳玉舒 / 臺灣大學計算機及資訊網路中心程式設計組幹事 智慧型手機 ...

  4. IOS开发之路三(XML解析之KissXML的使用)

    最近再做一个项目需要用到xml的解析.今天查了一些资料自己做了一个小demo.纯OC没有界面.. 在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是大多情况下都倾向于用 ...

  5. Java String Class Example--reference

    reference:http://examples.javacodegeeks.com/core-java/lang/string/java-string-class-example/ 1. Intr ...

  6. iOS “请在微信客户端打开链接” UIWebview加载H5页面携带session、cookie、User-Agent信息 设置cookie、清除cookie、设置User-Agent

    公司新开的一个项目..内容基本上是加载H5页面显示..当时觉得挺简单的..后来发现自己掉坑里了..一些心理历程就不说了..说这个项目主要用到的知识点吧..也是自己踩得坑. 首先说说..这个项目上的内容 ...

  7. DIH

    DIH内存溢出: 在使用DIH时,容易报内存溢出错误.可以通过设置jvm大小来解决.设置方法如下: 在tomcat\bin\startup.bat 加入SET JAVA_OPTS=-Xms128m - ...

  8. velocity 随笔

    资源网站: http://wiki.apache.org/velocity/ http://velocity.apache.org/engine/releases/velocity-1.7/user- ...

  9. 数据结构【一】:简单队列simple queue

    简单的FIFO队列实现,非线程安全! 1.queue.h : abstract data type queue #ifndef CUR_QUEUE_H #define CUR_QUEUE_H #inc ...

  10. Rolls.java (page44)

    对象的数组:模拟T次投掷骰子的Counter对象的用例: Rolls.java 如下:所用类列表:Counter, StdOut, StdRandom 见page42 public class Rol ...