java学习初探十三之集合
来源:互联网 发布:画房屋平面图软件 编辑:程序博客网 时间:2024/05/16 09:46
一、集合分为两部分(Collection和Map)
1.Collection
只能存储引用类型,并且只能单个存储。
(1)Collection继承结构图
List存储元素的特点:有序可重复,存进去什么顺序取出来还是什么顺序。
Set存储元素的特点:无序,不可重复。存进去的时候是一个顺序,取出的时候不一定什么顺序了。
SortedSet存储元素的特点:无序,不可重复。但是存储进去的元素可以按照元素的大小排序。
(2)底层数据结构
ArrayList底层数据结构:数组存储元素的,所以ArrayList适合查询,不适合频繁的随机增删元素。
LinkedList底层采用双向链表存储数据元素的,适合增删元素,不适合查询操作。
Vector底层和ArrayList相同,但是Vector是线程安全的。效率较低,所以现在很少使用。
2.Map
(1)Map集合的继承结构图:
Map集合以键值对的方式存储元素,键特点无序不可重复。Map和Collection没有关系。
3.双向链表和单向链表
单向链表:
(主要针对1中的LinkedList)
(1)提问:为什么单向链表查询效率低?
因为单向链表中的元素在空间的存储位置上没有规律,也没有顺序,那么在查找某个元素的时候必须从头节点挨着往后找,直到找到为止。
(2)为什么单向链表的增删效率高?
因为链表每个元素存储的空间是没有顺序的,删除或者添加某个元素,只需要让指针重新指向即可,不需要将其他元素位移。所以随机增删效率较高。
/* * 使用java模拟单向链表(待完善) */public class Linked { //节点 Entry entry; Linked(){ //只有一个头节点 entry=new Entry(null,null); } //add //remove //find //静态内部类 static class Entry{ //Filed Object data=null; Entry next; //constructor Entry(Object data,Entry next){ this.data=data; this.next=next; } }}
双向链表:
双向链表是一个环状
节点由三部分组成:指向上一个节点的内存地址,数据,指向下一个节点的内存地址
阅读全文
1 0
- java学习初探十三之集合
- java学习初探十三之集合Collection常用方法
- java学习初探十三之集合—List详解
- java学习初探十三之集合—Set详解
- java学习初探十三之集合—Map详解
- java集合初探之数据
- Java基础之十三:Java集合框架
- JAVA学习笔记之十三
- JAVA设计模式初探之十三:适配器模式
- Java学习之集合
- java学习之集合
- JAVA 学习之集合
- Java学习之集合
- Java学习之集合
- Java之集合学习
- 初探java集合框架
- Java 集合框架初探
- Java基础<十三>------Map集合
- Nginx反向代理和负载均衡
- JAVA 设计模式详解
- quartz
- Java选择&循环
- n阶行列式计算Python和C语言实现
- java学习初探十三之集合
- sscanf函数
- 执行npm install的时候报错:Cannot download "https://github.com/sass/node-sass/releases/download/v3.13.1/win3
- Oracle AQ
- 程序7
- Python的一些基础
- sicp练习2.6
- spring集成 log4j + slf4j
- BoxFilter的Matlab实现方法