集合

作者: 常威爆打来福 | 来源:发表于2017-07-08 13:21 被阅读0次
一. 集合框架
集合框架
二. 集合的类型与各自的特性
  • Collection:单列集合
  • List:有储存顺序,可重复
    • ArrayList:数组实现,查找快,增删慢
      增删慢由于是数组实现,在增和删的时候会牵扯到数组的增容,以及拷贝元素,所以慢。数组是可以直接安索引查找,索引查找时较快。
    • LinkedList:链表实现,增删快,查找慢
      由于是链表实现,增加时只要让前一个元素记住自己就可以,删除时让前一个元素记住后一个元素,后一个元素记住前一个元素,这样增删效率较高,但查询时需要一个一个遍历,所以效率低。
    • Vector:和ArrayList原理相同,但线程安全,效率略低
      和ArrayList实现实现方式相同,但考虑了线程安全问题,所以效率略低。
  • Set:无存储顺序,不可重复
    • HashSet:线程不安全,存取速度快。
      底层是以哈希表实现。
    • TreeSet:红-黑数的数据结构,默认对元素进行自然排序。
      如果在比较的时候两个对象返回值为0,那么元素重复。
  • Map:键值对 键不可重复,值可以重复
    • HashMap:线程不安全,存取速度快。
      底层是以哈希表实现。
    • TreeMap:红-黑树是我数据结构,默认对元素进行自然排序。
      返回值为0,那么元素重复。
    • HashTable:底层也是使用Hash表维护的,存取速度快,存储元素是无序的。
三. Map集合的基本使用
  • put(key、value)
  • clear()
  • remove(key)
  • containskey(key)
  • containsvalue(value)
  • HashMap<key,value> map=new HashMap<key,value>();
四. Map集合的输出
  1. Collection和Map接口保存对象的区别:
区别

1) Collection中的每一个元素都是一个独立的对象
2) Map中的每一个元素都是key和value“结伴而行”的组合对象——也就是所谓的偶对象。
2.Map集合输出思路
Map.Entry是Map中定义的一个内部接口,而且这个接口是一个static定义的外部接口,在这个接口之中定义了两个非常重要的方法:
1)取得对应的key的方法。public K getKey();
2 ) 取得对应的Value的方法。public V getValue();
那么清楚了Map.Entry的作用之后,下面就可以采用如下步骤进行map的Iterator的输出了。
1) 通过Map接口之中entrySet()方法将map集合变成set集合,set之中的泛型类型为map.entry。
2 ) 利用set接口之中的iteration()方法取得iteration接口对象,此时的泛型类型依然为Map.Entry;
3 ) 利用Iteration迭代出每一个Map.Entry对象,在使用getKey()和getValue()方法取出内容。
案例:利用Iterator输出Map接口

package Dao;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * Created by pc on 2017/7/8.
 */
public class IteratorMapDemo {
     public static void main(String [] args){
         Map<Integer,String> map=new HashMap<Integer, String>();
         map.put(1,"张三");
         map.put(2,"李四");
         map.put(3,"王麻子");
         Set<Map.Entry<Integer,String>> set=map.entrySet();
         Iterator<Map.Entry<Integer, String>> iter=set.iterator();
         while (iter.hasNext()){
             Map.Entry<Integer,String> me=iter.next();
             System.out.println(me.getKey()+"-->"+me.getValue());
         }
     }
}

运行结果:

运行结果

相关文章

  • 我的Swift的学习总结 -->第二周

    集合 集合:Set,定义一个集合可以写成:var 集合名 : Set<集合类型> = [集合元素],具体的集合应用...

  • markdown 测试

    集合 集合 集合 引用

  • kotlin学习第五天:集合,高阶函数,Lambda表达式

    集合 list集合 list集合分为可变集合与不可变集合。由list of创建的集合为不可变集合,不能扩容,不能修...

  • kotlin练习 ---- 集合练习

    kotlin练习 - 集合练习 Set集合 Set集合创建 Set集合的使用 List集合 List集合创建 Li...

  • 集合总结

    集合 集合分为单列集合和双列集合两种: 一.单列集合: Collection是单列集合的顶级接口: 其中有三类集合...

  • 映射、元组、集合

    映射 元组 集合 集合之seq 集合之set 集合之map

  • 16.Collection集合

    主要内容: Collection 集合 迭代器 增强for List 集合 Set 集合 1,集合 集合是java...

  • 集合与有序集合

    集合分为有序集合 (zset) 和无序集合 (set), 一般无序集合也直接说成集合 无序集合 (set) 无序集...

  • python入坑第八天|集合

    好的,各位蛇友,我们今天来学习集合。 内容: 集合的创建 集合操作符号 集合的内置函数 集合的创建 集合用set(...

  • 集合框架

    集合框架的概念 集合:存放数据的容器 集合框架:java中,用于表示集合,以及操作集合的类和接口的统称 数组与集合...

网友评论

      本文标题:集合

      本文链接:https://www.haomeiwen.com/subject/okvdhxtx.html