Set, List, Map

Set和List,Map都是集合,Set和List都是继承于Collection接口,而Map不是。

1.Map(映射)

  :Map是以key,Value的形式存储数据的映射集合,在取出数据时也是以key去获取value的值。

  .HashMap:一个典型的继承Map的类,内部是基于散列表来存取数据,大大的提高了数据的访问速度。key的值是不能重复的,但是value值是可以重复。

  .LinkedHashMap:类似于HashMap,只是迭代遍历时是按照插入的顺序排列的。

  .TreeMap:以树的形式存储数据,迭代遍历的值是经过排序的。

  主要方法:

    void put(Object key, Object value);  像map集合插入元素

    Object get(Object key);  根据key的值取得所映射的元素

    Object remove(Object key);  删除key所映射的元素,并返回该元素

    void putAll(Map m);  将符合标准的map插入到此map中

    void clear();  清空整个集合

    Set keySet();  获取所有的key值

    Collection values();  获取所有的value值

    因为Map的key是不可重复的,所以获取的key值存入Set集合,而value是可重复的,所以存入Collection

2.Set(集合)

  Set集合是一个不可重复,无序的集合。与Colletion一模一样

  .HashSet:内部以HashMap来存储数据的HashSet的值为HashMap的key值,HashMap的value是一个Object的类

  .TreeSet:TreeSet类实现了SortedSet接口,对集合中的对象进行排序

  主要的方法:

    void add(Object obj);   向集合添加一个元素

    boolean remove(Object obj);   删除集合中的指定元素, 成功返回true

    void clear();  清空整个集合

    Object[] toArray();  将集合转换为一个数组

    boolean contains(Object obj)  集合是否存在obj元素

   遍历Set集合需要使用迭代器Iterator

       Iterator it = set.iterator();

     while (it.hasNext()) { // 是否存在下一个元素

      it.next(); // 存在,取得下一个元素

     }

3.List(列表)

  List继承于Collection,但是相比较于Set,List在继承Collection的同时,添加了跟多的方法,且List集合是线性存储

  .ArrayList:内部以Array的形式实现,优点:查找访问速度快

  .LinkedList:内部以链表的形式实现,优点:插入,删除等操作速度快

  List集合可以使用新循环和迭代器遍历集合:

    for:

    for (Object obj : list) {

      System.out.println(obj);

    }

    Iterator:

    Iterator it = list.iterator();

    while(it.hasNext()) {

      Systemo.out.println(it.next());

    }

  主要方法:

    void add(Object obj);   添加元素

    void add(int index, Object obj);  插入元素到指定位置

    void get(int index);  取得指定位置元素

    void remove(int index);  删除指定位置元素

    int indexOf(Object obj);  制定元素的地址

    void toArray();  将集合转换为数组

    int Size();  集合的长度

    

java的Set, List, Map简单介绍的更多相关文章

  1. Java EE设计模式(主要简单介绍工厂模式,适配器模式和模板方法模式)

    Java EE设计模式分为三种类型,共23种: 创建型模式:单例模式.抽象工厂模式.建造者模式.工厂模式.原型模式. 结构型模式:适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代理模式 ...

  2. Java并发:ThreadLocal的简单介绍

    作者:汤圆 个人博客:javalover.cc 前言 前面在线程的安全性中介绍过全局变量(成员变量)和局部变量(方法或代码块内的变量),前者在多线程中是不安全的,需要加锁等机制来确保安全,后者是线程安 ...

  3. Java静态检测工具/Java代码规范和质量检查简单介绍(转)

    静态检查: 静态测试包括代码检查.静态结构分析.代码质量度量等.它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行.代码检查代码检查包括代码走查.桌面检查.代码审查等,主要检查代码 ...

  4. 【细说Java】方法重载的简单介绍

    1. 什么是重载 方法名称相同,但它们的参数类型或个数不同,这样,方法在被调用时编译器就可以根据参数的类型与个数的不同加以区分,这就是方法的重载. 既然可以通过参数类型或参数个数来作为重载条件,那返回 ...

  5. Java中基本类型和引用类型(简单介绍)

    8种基本类型  一.4种整型 byte      1字节           -128——127     short     2 字节         -32,768 —— 32,767     in ...

  6. java中的泛型,简单介绍。 修饰方法的用法

    一.<R>  ( R  r ) 默认object  可以存所有类型.   R 这个是随便定义的大写字母,前后要保持一致性! package com.aaa.test; /* * 演示 泛型 ...

  7. Java -- POI -- 入门使用以及简单介绍

    1.创建工作簿 (WORKBOOK) HSSFWorkbook wb = new HSSFWorkbook(); FileOutputStream fileOut = new FileOutputSt ...

  8. Java之字节码(3) - 简单介绍

    转载来自 首先了解一下理论知识: 字节码: Class文件是8位字节流,按字节对齐.之所以称为字节码,是因为每条指令都只占据一个字节,所有的操作码和操作数都是按字节对齐的.如:0×03表示iconst ...

  9. Java中的wait方法 简单介绍。

    一 wait方法怎么用? package com.aaa.threaddemo; /* * 多线程中的wait方法? public final void wait() throws Interrupt ...

随机推荐

  1. 【Android Studio探索之路系列】之十:Gradle项目构建系统(四):Android Studio项目多渠道打包

    作者:郭孝星 微博:郭孝星的新浪微博 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.co ...

  2. 前端-DDoS攻击

    下面的脚本(略有修改)就会向受害网站发送大量的请求: function imgflood() { var TARGET = 'example.com' var URI = '/index.php?' ...

  3. windows下gVim 中文显示为乱码

    打开vimrc文件,在vim的安装目录下可以找到该文件: 或在windows下是在vim/gvim下输入:edit $vim/_vimrc. 在文件的末尾添加一句 "set fileenco ...

  4. API网关如何实现对服务下线实时感知

    上篇文章<Eureka 缓存机制>介绍了Eureka的缓存机制,相信大家对Eureka 有了进一步的了解,本文将详细介绍API网关如何实现服务下线的实时感知. 一.前言 在基于云的微服务应 ...

  5. Swift高阶函数介绍(闭包、Map、Filter、Reduce)

    Swift语言有非常多函数式编程的特性.常见的map,reduce,filter都有,初看和python几乎相同,以下简介下 闭包介绍: 闭包是自包括的功能代码块,能够在代码中使用或者用来作为參数传值 ...

  6. oracle sql 当初始化数据时避免重复主键

    一:当有主键序列自动增长时候(序列为:seq_cct_id) insert into cs_cost_type (CCT_ID, CCT_NAME, CCT_RATE, CCT_RATE_TYPE, ...

  7. 谈谈加载(Loading)的那点事

    谈谈加载(Loading)的那点事 2013/10/12 | 分类: 设计 | 0 条评论 | 标签: 交互设计, 加载 分享到:33 原文出处: 搜狐焦点 对于加载(loading),想必大家都不陌 ...

  8. 如果在 Code First 模式下使用,则使用 T4 模板为 Database First 和 Model First

    web.config里的链接字符串最好和app.config里相同,因为ef的链接字符串需要一些特殊的参数

  9. Google Guava之Optional优雅的使用null

    为什么使用optional 使用Optional<T>除了简化粗鲁的if(null == object).降低函数的复杂度.增加可读性之外,它是一种傻瓜式的防护,Optional<T ...

  10. 简单老式Java对象 横切关注点 最小侵入性编程 声明式编程 避免强迫类继承和接口实现

    Spring In Action data injection aspect-oriented programming Plain Old Java Object 依赖注入能让相互协作的软件组件保持松 ...