>两大主流:collection、map(接口)

底层实现为数组和链表;

RationalRose工具:接口与典型实现类;

List :数据是有序的(时间上有序,存放时间顺序存放),可以存放重复元素;

Set:数据是无序的,不可以存放重复元素;

>实现类:HashSet

注意:Set 是无序的,所以没有get方法,没有get第几个这一说;

对于无序的一堆数据,用只”手“抓,如果还有,就接着取;

要使用Iterator迭代器进行迭代;

        HashSet hs=new HashSet();hs.add("a");hs.add("b");hs.add("c");hs.add("d");hs.add("e");Iterator iterator = hs.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}

>HashSet去重复的机制:

引用数据类型的不可重复性,

1.HashSet是根据对象的equals();方法来去重复;

2.一定要同时保证equals和hashcode方法的返回值问题,否则可能会导致误删除,性能上有缺陷,多个对象占用一个内存地址,形成多个对象占用一个内存地址,形成链条,迭代时多一个步骤,性能变慢;

>TreeSet

TreeSet 实现了SortedSet接口,是用来排序(基本数据类型默认升序)的Set实现类;

这样就产生两个问题:

1.如何实现降序;

给TreeSet提供一个comparator比较器接口,匿名内部类重写compare()方法;

构造方法摘要
TreeSet()
          构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。
TreeSet(Collection<? extends E> c)
          构造一个包含指定 collection 元素的新 TreeSet,它按照其元素的自然顺序进行排序。
TreeSet(Comparator<? super E> comparator)
          构造一个新的空 TreeSet,它根据指定比较器进行排序。
TreeSet(SortedSet<E> s)
          构造一个与指定有序 set 具有相同映射关系和相同排序的新 TreeSet。

降序实现:

package com.ls.list;import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;public class Tree {public static void main(String[] args) {// 构建比较器Comparator co = new Comparator() {@Overridepublic int compare(Object o1, Object o2) {int i1 = (Integer) o1;int i2 = (Integer) o2;if (i1 > i2) {return -1;} else if (i1 < i2) {return 1;} else {return 0;}}};// 传入比较器TreeSet hs = new TreeSet(co);hs.add(9);hs.add(3);hs.add(200);hs.add(4);hs.add(100);Iterator iterator = hs.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}}}

注意:抽象数据类型和基本数据类型之间转换依靠包装类;

2.抽象数据类型怎么办;

抽象数据类型没有大小一说,不能用< >,我们可以使用比较器;

另外一种方式实现Comparable接口,重写compareto();方法 否则的话不能存储到TreeSet中去的;

代码截取:

添加比较器的方式:

实现comparable接口方式:

在Person类中重写compareto()

集合框架(Set容器)相关推荐

  1. java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类...

    本文关键词: java集合框架  框架设计理念  容器 继承层级结构 继承图 集合框架中的抽象类  主要的实现类 实现类特性   集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...

  2. Java基础_集合框架1

    一.集合框架(体系概述) 为什么会出现集合框架(集合类)? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 数组和集合框架 ...

  3. 容器(一)剖析面试最常见问题之 Java 集合框架

    转载自https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/collection/Java%E9%9B%86%E5%90%88%E ...

  4. Java 容器集合框架概览

    Java Collections Framework 集合的概念 集合collection,有时叫做容器container,把多个元素组成一个单元. 早期的Java (pre-1.2) 中包含了Vec ...

  5. java 有序容器_Java 容器集合框架概览

    Java Collections Framework 集合的概念 集合collection,有时叫做容器container,把多个元素组成一个单元. 早期的Java (pre-1.2) 中包含了Vec ...

  6. Java【7】工具包(集合框架、函数式编程、Optional容器)

    目录 1.集合与Collection集合接口 2.List集合接口 3.LinkedList分析 4.Map接口及其操作 5.HashMap 6.Set集合接口 7.Iterator接口 8.小结:J ...

  7. java api 框架_java常用对象API之集合框架

    说到集合框架,其实刚开始学的时候有点自我感觉很简单,自己认为就是集合类中的框架之类的,但是当自己简单把它过了一变后发现懵里懵懂的,什么都没懂,于是自己又认认真真的看了一遍,才弄明白. 说到集合框架就不 ...

  8. spring 全局变量_[Spring]-Spring框架-02-IOC容器

    Spring框架 IOC容器 理解IOC容器和DI依赖注入 IOC容器 Inverser Of Control反转控制 就是把原来在程序中创建HelloService对象的控制权限交给Spring管理 ...

  9. Java集合框架综述,这篇让你吃透!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:平凡希 cnblogs.com/xiaoxi/p/60899 ...

  10. java集合框架史上最详解(list set 以及map)

    title: Java集合框架史上最详解(list set 以及map) tags: 集合框架 list set map 文章目录 一.集合框架总体架构 1.1 集合框架在被设计时需满足的目标 1.2 ...

最新文章

  1. php 预订义变量,预约义变量 PHP
  2. 15年来,自然语言处理发展史上的8大里程碑
  3. Python模拟浏览器实现网页访问
  4. 监督学习、半监督学习、无监督学习定义
  5. 男人是大猪蹄子的证据找到了!
  6. MySQL笔记汇总---狂神说
  7. 自行车房车,还是第一次看到,惊倒一片!
  8. C++中的.和::和:和-的区别
  9. Android JNI(一)——NDK与JNI基础
  10. 每周一个设计模式之工厂方法与抽象工厂
  11. Unity3D之NGUI基础8:UI锚点与深度
  12. SLAM中直接法分类及对应的项目
  13. 非参数统计的Python实现—— Kruskal-Wallis 单因素方差分析
  14. 关于MSHTML、IHTMLDocument、Ihtmldocument2-5的区别及 document.execCommand方法详解
  15. 三级网络技术无纸化模拟软件 (未来)教育
  16. Halium 9 尝鲜 -- 在小米平板4上的移植 (二)
  17. linux pam 使用例子,PAM认证模块使用实例
  18. Swift 动画 —— 数字滚动UILabel动画
  19. Y z推荐菜东家 易订货生鲜系统_新零售·新生鲜——易订货生鲜专版客户交流会(贵阳站)圆满结束!...
  20. Google glog

热门文章

  1. 关于Stop The World的几个问题
  2. DownloadManager不好用?试试ZlsamDownloadService
  3. JDBC第二篇 【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】...
  4. [20171220]toad plsql显示整形的bug.txt
  5. 跟我一起学习ASP.NET 4.5 MVC4.0(一)
  6. Java实现正整数数组的最小拼接数
  7. ZStack常见问题
  8. 实施 or 开发 ?
  9. MySQL 主从复制 复制过滤
  10. Mysql外键约束foreign key