美文网首页
理解java集合

理解java集合

作者: _hello__world_ | 来源:发表于2017-08-20 12:13 被阅读0次
集合框架体系 集合框架体系
  • 容器的同步控制与只读设置

一、同步控制:多线程并发访问集合的线程安全
常用的容器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:工具类

相关文章

  • 理解java集合

    容器的同步控制与只读设置 一、同步控制:多线程并发访问集合的线程安全常用的容器ArrayList、HashSet、...

  • 关于Java中的 CopyOnWriteArraySet

    最近做的课程设计中用到了Java线程安全的集合类,因此关于对Java线程安全集合类的理解做个简单记录。Java集合...

  • Java集合框架

    Java集合框架 (例如基本的数据结构)里包含了最常见的Java常见面试问题。很好地理解集合框架,可以帮助你理解和...

  • Java集合框架面试问题集锦

    Java集合框架(例如基本的数据结构)里包含了最常见的Java常见面试问题。很好地理解集合框架,可以帮助你理解和利...

  • 集合常见问题

    1.1 集合概述 集合的概念理解: 集合 :集合就是 Java 中提供的一种容器,可以用来存储多个数据。 集合和数...

  • 2018-07-16

    Java 阅读 大白话说Java泛型 深入理解Java集合框架 java构造代码块详解 Java中Overload...

  • java文艺复兴

    JAVA 语言基础 理解面向对象OO 常用类 集合 IO 多线程 GUI(??) 网络编程 JAVA WEB (...

  • 一篇文章,全面解读Android面试知识点

    Java Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList...

  • 【烟火气】从面试题学技术-ArrayList 和 Vector

    ArrayList 和 Vector 的区别 一.问题本质 Java集合的理解 二.问题解释 首先,我们来看看集合...

  • 收藏夹

    博文 Java 集合:Java 集合学习指南 Java 集合:Java 集合源码剖析 HashMap:HashMa...

网友评论

      本文标题:理解java集合

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