java集合

集合

Map

  • Map用于保存多组有映射关系的键值对对象 字典
  • 键是无序不可重复(本质是Set集合)
  • 键到值是单向一对一的映射关系 , 根据唯一的键只能获取一个值

方法

  • Object put(Object key, Object value); 放入一个字典
  • Object get(Object key) 放入key查询到value
  • Set keySet(); 拿到所有key // 获取map中的保存所有键对象的Set子集合
  • Set entrySet(); 拿到所有对象 // 获取保存键值对Entry对象的集合

具体子类 :

  • HashMap 使用哈希算法实现了map集合,无序不可重复
  • TreeMap 同样必须实现 Comparable接口,或者定制排序的Comparator对象,所有的key必须是同一个类否者抛出异常,classCastException
  • Hashtable 古老的实现类 ,效率低,线程安全
  • Properties Hashtable子类 Properties, Properties 里的key 和value 都是字符串类型
  • LinkedHashMap hashMap子类 有序不可重复,结构是链表

Collection

Collection 接口, 表示一个集合, 保存一个一个的对象

  • 无序可重复, 无序就是不按添加顺序保存元素. 元素可以重复

Collection方法

  • boolean add(Object obj) 添加元素, 如果成功, 返回true, 如果失败, 返回false
  • boolean contains(Object obj) 判断是否包含某元素
  • boolean remove(Object obj) 从集合中移除某元素
  • int size() 获取集合中的元素个数.

Set 子接口

HashSet 具体子类,

  • 使用哈希算法实现的Set集合,去重的依据就是对象的equals方法和hashCode方法.

TreeSet 具体子类

  • 基本二叉树实现的Set集合,不能放混合元素
  • 虽然是无序(不按添加顺序保存元素) 但是结果是元素实现了自然排序,
  • 第一去重的依据是两个对象的compareTo为0
  • 第二种实现Comparator接口,创建对象,将对象关联到集合中进行比较,使用场景在不修改类的时候调用此方法

List 子接口

  • 有序可重复,列表

具体子类

  • ArrayList 用数组实现的List集合
  • LinkedList 用链表实现的List集合
  • Vector 它和ArrayList完全一样.

list方法

  • void add(int index, Object obj) 在参数index指定的下标位置处插入新元素
  • Object get(int index) 返回参数index指定的下标位置处的元素
  • Object set(int index, Object obj) 替换index位置处的元素为obj新元素, 返回旧元素
  • Object remove(int index) 删除指定下标处的元素.
  • boolean contains(Object obj) 判断是否包含某元素
posted @ 2020-04-27 15:37  silence022  阅读(24)  评论(0)    收藏  举报