理解java集合

集合框架体系
集合框架体系
  • 容器的同步控制与只读设置

一、同步控制:多线程并发访问集合的线程安全
常用的容器ArrayList、HashSet、HashMap都是线程不安全的
Collections提供了synchronizedXxx()方法,将指定容器包装成同步
synchronizedList()
synchronizedSet()
synchronizedMap()
二、不可以变设置:“只读”访问,Collections提供了三种方法
emptyXxx()空的不可变集合
singletonXxx()一个元素不可变的集合
unmodifiableXxx() 不可变容器

  • HashTable与Properties(绝对、相对、类路径存储与读取)

一、Hashtable和HashMap的区别
1、主要:HashTable线程安全,同步,效率相对低下
HashMap线程不安全,非同步,效率相对高
2、父类:Hashtable是 Dictionary HashMap是AbstractMap
3、null:Hashtable键与值不能为null
HashMap键最多一个null,值可多个null
二、Properties
1、作用:读写资源配置文件
2、键与值只能为字符串
3、方法:
setProperty(String key,String value)
getProperty(String key,String value)
getProperty(String key,String defaultValue)

后缀:properties
store(OutputStream out,String comments)
store(Writer writer,String comments)
load(InputSteam inStream)
load(Reader reader)
.xml
storeToXML(OutputStream os,String comment); UTF-8字符集
storeToXML(OutputStream os,String comment,String encodeing)
loadFromXML(InputStream in)
三、相对路径与绝对路径
1、绝对路径:盘符:/
2、相对路径:当前项目、工程
四、类路径加载资源文件
类所在的根路径
1、类.class.getResourceAsStream("/")
2、Thread.currentThread().getContextClassLoader().getResourceAsStream("")

  • 枚举Enumeration和StringTokenizer

比较古老的接口
枚举Enumeration,作用和Iterator类似,都是输出数据方法:
hasMoreElements()
nextElement();
应用
Vector: elements()
StringTokenizer

  • Queue单向队列(模拟银行业务和自定义堆栈)

  • Set接口

HashSet基于 HashMap实现
Set接口是Collection接口的子接口,Set接口美有提供额外的方法,Set接口的特性是容器类中的元素是没有顺序的,而且不可以重复。
Set容器类有HashSet,TreeSet
HashSet基于 HashMap实现

  • Java容器重点总结

一、一张图

image.png

二、三个知识点
1、迭代器
1)、java.util.Iterator+hasNext() next() remove()
2)、foreach:java.lang.Iterable+iterator()
2、比较器
1)、实体类可以排序 java.lang.Comparable+compareTo
2)、排序比较器(解耦、多种排序规则)java.util.Comparator+compare List+Collections.sort()
TreeSet TreeMap
3、泛型<>泛型类、泛型方法、泛型接口、泛型擦除、通配符? extends super 泛型嵌套
三、六个接口
Collection Set List Map Iterator Comparable
四、九个常用类 添加、删除、修改、查看+遍历
1、ArrayList:数组 查看多余修改
add(元素) add(索引、元素)remove(元素)remove(索引)set(索引,元素)get(索引)
for+get foreach() Iterator ListIterator
2、LinkedList:链表,修改多于查看,多了些链头和链尾的方法
3、HashSet:重写hashcode+equals add(元素)remove(元素)
4、TreeSet:元素可以排序 或者 提供排序的业务类
5、HashMap:键不能重复 必须重写hashcode+equals,值可用重复
put(k,v) remove(k) containsKey containsValue
获取值:values() keySet()+get entrySet() + getValue()
获取键:keySet() entrySet() + getKey()
获取键与值:keySet()+get entryset()+get Key() getValue()
6、Properties:资源配置文件 相对路径获取文件
7、Hashtable:键与值不能为null 线程安全
8、Stack:栈
9、Collections:工具类

推荐阅读更多精彩内容