java_Collections_其他

1、队列:单向和双向

一、单向:一端操作
1、一般:FIFO
2、优先和堆栈: LIFO
 

二、双向:两端操作,头或尾操作


子类ArrayDeque 

2、Enumeration

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

应用
Vector :elements()
StringTokenizer

3、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) 
getProperty(String key, String defaultValue)  


后缀:.properties
store(OutputStream out, String comments) 
store(Writer writer, String comments) 
load(InputStream inStream) 
load(Reader reader) 
.xml
storeToXML(OutputStream os, String comment)  :UTF-8字符集
storeToXML(OutputStream os, String comment, String encoding) 
loadFromXML(InputStream in) 
三、相对路径与绝对路径
1、绝对路径 :    盘符:  /
2、相对路径 : 当前项目、工程 


四、类路径加载资源文件
类所在的根路径
1、类.class.getResourceAsStream("/")
2、Thread.currentThread().getContextClassLoader().getResourceAsStream("")

4、其他Map实现类

一、引用分类(面试)
强引用:StrongReference:引用指向对象,gc (Garbage collection)运行时不回收
软引用:SoftReference gc运行时可能回收(jvm内存不够)
弱引用:WeakReference gc运行时立即回收
虚引用:PhantomReference  类似于无引用,主要跟踪对象被回收的状态,不能单独使用,必须与引用队列(ReferenceQueue) 联合使用
二、三个Map接口实现类
1、WeakHashMap:键为弱引用
2、IdentityHashMap:键比较地址去重,注意常量池的对象
3、EnumMap:枚举map,要求键为枚举的值

5、同步容器与只读控制

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

6、总结

重点:1 3 6 9 
一、一张图
 
二、三个知识点
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(元素) 
 foreach() Iterator 
4、TreeSet :元素可以排序 或者提供排序的业务类
5、HashMap: 键不能重复 必须重写 hashcode +equals ,值可以重复
     put(k,v) remove(k) get(K) containsKey containsValue
    获取值:values()  keySet()+get entrySet()+getValue()
    获取键:keySet  entrySet() +getKey()
    获取键与值: keySet()+get  entrySet() +getKey() getValue()
6、Properties :资源配置文件  相对路径获取文件
7、Hashtable:键与值都不能为null 线程安全
8、Stack:栈
9、Collections:工具类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值