当前位置:编程学习 > JAVA >>

Java--collection--List,Set,Map

集合: 数据结构
 
abstract data
  数据的操作方法
abstract data type
  数据的操作方法 + 数据
 

Collection
 
Iterator:只能前序遍历,并且可以在遍历的同时删除元素
 
ListIterator
 前序遍历
 后序遍历:必须要先将迭代器移动到集合末尾,才可以从后往前遍历
 插入元素:在迭代器当前位置左边添加元素
 删除元素:
  前序遍历删除迭代器左边元素
  后序遍历删除迭代器右边元素
 修改元素:
  修改前必须跳过一个元素
  可以连续修改多次
 得到当前的索引(下标)
 
 

List:
 关心元素的索引,元素顺序
 允许元素重复
 
 ArrayList  动态数组/泛型数组
  优点:
   快速遍历,随机访问
  缺点:
   插入,删除慢,占用连续内存空间
 
 LinkedList 链表
  单向不循环链表
  单向循环链表
  双向不循环链表
  双向循环链表
 
  无头链表
  优点:
   插入,删除快
  缺点:
   不提供随机访问,所使用的下标表示该节点距离头节点之间经过的节点个数
  
 Stack:先进后出  FirstInLastOut
 Queue:先进先出  FirstInFirstOut
 
 
Set:Hash-->哈希
 不关心元素索引
 不允许重复,不关心元素顺序
 计算元素下标:hashCode % bucket(数组长度)
 
 HashSet
  无序的,未分类的集合
  自定义对象必须重写hashCode和equals方法
  为HashSet提供判断对象是否相同的依据
 
 LinkedHashSet
  Hash的排序版本, 严格按照插入顺序排序
 
 TreeSet
  Hash的排序版本,按照元素大小排序
  默认为从小到达排序
 
  equals:比较两个对象内容是否相同
 
  compareTo:比较两个对象大小
   必须重写,自定义对象的时候必须重写该方法
  
  hashCode和equals
   当两个对象中的所有属性都一样的时候,一般认为这
   2个对象为同一个对象
 
 

Map
 键值映射关系key-value
 关心key的唯一性

 HashMap
  未排序
  自身不带迭代器,只能通过视图遍历
 
  条目视图 key-value
  key视图
  value视图
 
 LinkedHashMap
  按照元素顺序排序

 TreeMap
  按照key大小排序

  Comparator:比较器
   告诉TreeMap如何对集合内部的元素排序
   自定义排序规则
 

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,