集合框架
来源:互联网 发布:eia数据公布 编辑:程序博客网 时间:2024/06/05 04:13
数据结构
栈:先存入的在最下面,先进后出(FILO)first in last out
链表:查找效率不高
队列:先进先出FIFO
二叉树:三种遍历顺序,前序中序后序,先左后右
图:无规则
集合三大接口
Collection 所有集合类的跟接口
Map 映射接口,存放键值对
Iterator 遍历集合的迭代接口
Java的集合框架是由很多接口、抽象类、具体类组成的,都位于java.util包中。除Comparable位于Java.lang包
Collection
Collection意即集合,是所有集合类的根接口,同时Collection接口是一个泛型接口
List
有序的集合,元素有序存入,可能重复。
Set
无序,无重复的集合,即存入的元素不重复。
Queue
队列,jdk1.5版本新增接口,Queue实现了“先进先出”(FIFO)的存储结构。Queue是Collection的子接口,具有所有集合基本操作,除此之外,Queue还提供了一些新的插入、提取、查询等方法。
SortedSet
有序
Map接口
Map中保存的是键值对Map<key,Value> ,Key值不允许重复,如果重复,则覆盖
实现类:
HashMap
HashMap中元素的key值不能重复,即彼此调用equals方法,返回为false。排列顺序是不固定的。
线程不安全,少一步check,所以效率高,初始容量16
Hashtable
线程安全,初始容量11,有了Hashmap后逐渐少用
TreeMap
TreeMap中所有的元素都保持着某种固定的顺序,如果需要得到一个有序的Map就应该使用TreeMap,key值所在类必须实现Comparable接口
适用于按自然顺序或自定义顺序遍历键(key)。
TreeMap根据key值排序,key值需要实现Comparable接口,实现compareTo方法。TreeMap根据compareTo的逻辑,对key进行排序
List接口
继承了Collection接口,并且扩展出属于自己的方法;List 集合中的元素都是与索引有关系的,因此List集合扩展的方法都是与索引有关系的。
例如: add(int index,E)……添加元素在所对应的索引位置
List三个实现的类
ArrayList
数组列表,数据采用数组方式存储,使用连续内存存储。ArrayList是Java语言中可变长度数组的实现
ArrayList本质上是一个动态数组,是实际应用中最常用的集合类
初始化能存10个元素,自动扩展 (原长度*3)/2+1
Null可以无限制存入
可重复
非线程安全
LinkedList
链表,该集合类型实现了“链表”的数据结构。值得一提的是,LinkedList不仅实现了List接口,还实现了Queue接口,可以说链表同时也可以作为一个队列对象使用。使用方式与ArrayList类似
以链表的方式存放的,每个节点上存放的是数据信息
由于实现了Queue接口,先进先出。删除元素只能正着删,不能倒着删
Vector
jdk1.0中的集合,实现了同步。该集合类型实现了“链表”的数据结构。值得一提的是,LinkedList不仅实现了List接口,还实现了Queue接口,可以说链表同时也可以作为一个队列对象使用。使用方式与ArrayList类似
有了ArrayList后逐渐少用
线程安全
初始能存10个元素 默认扩展长度=原长度*2
Set接口
Set中所存储的元素是不重复的,但是是无序的,Set中的元素是没有索引的
Set接口的实现类
HashSet
HashSet类中的元素不能重复,即彼此调用equals方法比较,都返回false
不重复,Hashcode不重复,无索引
遍历不能用普通for循环
默认初始容量16
注意内存泄漏,更改对象属性在add之前更改
TreeSet
可以给Set集合中的元素进行指定方式的排序。存储的对象必须实现Comparable接口
实现了元素排序
不能有null
不可重复
要求实现Comparable接口
Properties类
Properites类是Hashtable类的子类,所以也间接地实现了Map接口。
在实际应用中,常使用Properties类对属性文件进行处理。
常用方法:load();加载文件;
getProperty(key);通过key值获得对应的value值
setProperty(String key,String value)给properties文件中写值
Collections类
是集合类的工具类,与数组的工具类Arrays类似定义了大量静态方法
—同步集合对象的方法
—对List排序的方法
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 关于CoordinatorLayout和ListView滑动冲突的解决
- PHP Warning: phpinfo(): It is not safe to rely on the system's timezone settings.处理方法
- adbunknown Host service问题修复
- IDC说阿里云又涨了丨专家称信息保护对区块链技术需求巨大丨联想亏惨了,净利润同比下滑80%【软件网每日新闻播报│第11-2期】
- 携AI+安防双基因,博思廷如何推动智能安防产业发展?
- 集合框架
- https://www.5ceo.cn/generator/index.htm [5CEO.cn-代码生成工具,在线快速生成java代码,springmvc框架]
- 引用 网页层叠z-index用法详解(转载)
- mybatis 的一级缓存和二级缓存
- 20171102--NPM的介绍和使用
- Java多线程编程-(18)-等待/通知模式接口Condition接口深入分析
- Ubuntu16.04更新4.13.8内核.md
- Java中四种引用类型
- JAVA 注解