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();  集合的长度

    

最新文章

  1. spring源码分析之cache注解
  2. Rxjava的基本使用
  3. uva11025 The broken pedometer
  4. WOJ-1203
  5. HDU 1542 线段树+扫描线+离散化
  6. ADO.NET中ExcuteNonQuery获取存储过程Return返回值
  7. lua5.3调用C/C++
  8. 腾讯QQ首次在PC端采用气泡式聊天界面(from:36kr)
  9. koa+mysql+vue+socket.io全栈开发之数据访问篇
  10. SmartSql Redis 分布式缓存
  11. JS prototype 生成机制
  12. 20165234 2017-2018-2《Java程序设计》课程总结
  13. ubuntu16.04下vim的安装与配置
  14. [转载]Oracle PL/SQL之LOOP循环控制语句
  15. SSH配置文件详解
  16. HTTP协议学习【转】
  17. laravel 5.5 跨域问题解决方案
  18. DotNet_Performance_Tuning_ANTS_Performance_Profiler
  19. 处理“位域”枚举类型变量的几个例子
  20. spring中的default-lazy-init参数和lazy-init

热门文章

  1. Qt在线讲座之QML脚本书写规范
  2. linux 块设备驱动(五)——块设备应用层的操作
  3. windows常用快捷键(转载)
  4. LeetCode: Binary Tree Postorder Traversal [145]
  5. 在给mysql数据库备份时,报错: mysqldump: Got error: 145: Table '.\shengdaxcom\pre_forum_thread' is marked as c rashed and should be repaired when using LOCK TABLES
  6. Oracle 11gR2 使用RMAN Duplicate复制数据库
  7. Mac 操作系统安装 SVN server教程(Subversion With Mac OS X Tutorial)
  8. linux定期判断网站可否打开
  9. self = [super init]的解释
  10. js的单线程与异步