1.java容器基本内容
java容器概述
jdk提供的容器分为collection和map两类,其中collection是对象集合,map是键值对集合
1.collection接口

(1)collection接口方法
isEmpty();//篮子是否空
size(); //集合大小
Iterator();//获得迭代器
toArray(); // 把容器对象转为object数组
contain(object);containAll(collection);
add(E e); remove();//移除而不是删除 ;
addAll();removeAll();retainAll();//指定清除
clear();//清除所有
equal();
hashcode();
(2)set接口实现类
都是集合类
TreeSet:set接口的孙子,所以不可重复;用红黑树实现,所以有序且查找时间O(logn)
HashSet:set接口的儿子,所以不可重复;用hash表实现,所以无序且查找时间O(1)
LinkedHashSet:set接口的儿子,所以不可重复;用hash表实现,所以查找时间O(1)
使用双向链表,所以有序
(3)list接口实现类
都是链表类
ArrayList:用动态数组实现,在数组空间不足时扩容,在增删时要移动后面的值,
所以速度上查找快、增删慢;安全上线程不安全
LinkList:用双指针实现,所以速度上增删快,查找慢;安全上线程不安全
(4)queue接口实现类
都是队列类
LinkedList:用双指针实现链表,进而实现双向队列。
PriorityQueue:用堆结构实现,进而实现优先队列。队头是排序规则最大 / 小的元素
2.map接口

- TreeMap:基于红黑树实现。线程不安全。
- HashMap:基于哈希表实现。线程不安全。
- LinkedHashMap:用双向链表和hash实现。增删效率低,线程不安全。
- Hashtable:遗留类不使用
(多线程)ConcurrentHashMap :使用分段锁,效率高且线程安全。
1.java容器基本内容的更多相关文章
- 【Java心得总结七】Java容器下——Map
我将容器类库自己平时编程及看书的感受总结成了三篇博文,前两篇分别是:[Java心得总结五]Java容器上——容器初探和[Java心得总结六]Java容器中——Collection,第一篇从宏观整体的角 ...
- Java 容器(list, set, map)
java容器类库的简化图: (虚线框表示接口, 实线框表示普通的类, 空心箭头表示特定的类实现了接口, 实心箭头表示某个类可以生成箭头所指的类对象) 继承Collection的主要有Set 和 Lis ...
- Java - 容器详解
一.ArrayList 长度可变数组,类似于c++ STL中的vector. 元素以线性方式连续存储,内部允许存放重复元素. 允许对元素进行随机的快速访问,但是向ArrayList中插入和删除元素的速 ...
- java容器---集合总结
思考为什么要引入容器这个概念? Java有多种方式保存对象(应该是对象的引用),例如使用数组时保存一组对象中的最有效的方式,如果你想保存一组基本类型的数据,也推荐使用这种方式,但大家知道数组是具有固定 ...
- JAVA容器
JAVA容器 一.容器体系结构 java.util 二.迭代器Iterator<E> 迭代器是一种设计模式,可以遍历并选择序列中的对象,而开发人员并不需要了解该序列的底层结构.迭代器通常被 ...
- Java 容器相关知识全面总结
Java实用类库提供了一套相当完整的容器来帮助我们解决很多具体问题.因为我本身是一名Android开发者,包括我在内很多安卓开发,最拿手的就是ListView(RecycleView)+BaseAda ...
- Java容器的各种总结
Java容器指的是List,Set,Map这些类.由于翻译的问题,问到集合,Collection这些指的都是它们几个. List ArrayList 随机访问快 LinkedList 插入删除快 这个 ...
- Java 容器在实际项目开发中应用
前言:在java开发中我们离不开集合数组等,在java中有个专有名词:"容器" ,下面会结合Thinking in Java的知识和实际开发中业务场景讲述一下容器在Web项目中的用 ...
- Java 容器在实际项目中的应用
前言:在java开发中我们离不开集合数组等,在java中有个专有名词:"容器" ,下面会结合Thinking in Java的知识和实际开发中业务场景讲述一下容器在Web项目中的用 ...
随机推荐
- 深入理解 Java 异常
- Java 中 PO 与 VO 的区别
什么是PO PO(Persistence Object 持久化对象)是直接跟持久层数据库打交道的java Bean (model,entity,bean等叫法都是可以的),里面除了私有的成员变量之外, ...
- 谁说程序员不浪漫?Python导出微信聊天记录生成爱的词云图
明天又双叒叕是一年一度的七夕恋爱节了! 又是一波绝好的机会!恩爱秀起来! 购物车清空!礼物送起来!朋友圈晒起来! 等等! 什么?! 你还没准备好七夕礼物么? 但其实你不知道要送啥? 原来又双叒叕要 ...
- vue v-if和v-show的区别
其中v-if依赖于控制DOM节点,而v-show是依赖于控制DOM节点的display属性. 当v-show传入的值为true时,对应DOM元素的display的值为block之类的,反之为false ...
- 记录Android开发中遇到的坑
1. 出现错误提示:Intel HAXM is required to run this AVD,VT-x is disabled in BIOS的解决办法. 点击SDK图标,安装Intel x86 ...
- Thymeleaf常用语法:模板文件中表达式调用Java类的静态方法
在模板文件的表达式中,可以使用“${T(全限定类名).方法名(参数)}”这种格式来调用Java类的静态方法. 开发环境:IntelliJ IDEA 2019.2.2Spring Boot版本:2.1. ...
- JS&Jquery基础之对象和数组以及类型转换
一.{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数. 如:var LangShen = {"Name":"Langshen",&qu ...
- (入门SpringBoot)SpringBoot加接口操作日志好方法(九)
用Spring的切面去做,慕课网上的大神的小妙招,被我拷贝下来了.import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotati ...
- Linux下的 mariadb 使用 root 用户启动方式
近日因测试安全产品需要,想调整mariadb的启动用户为root, 经历一番波折后终于成功! 注意:以root身份启动mysql是一项非常危险行为,相当于给了数据库操作用户(数据库管理员或黑客)一个通 ...
- list集合优化,泛型的使用以及坼箱和装箱
1.list vector线程同步,线程安全arraylist的运行速度较快,因为没有使用线程 LlinkedList以链表结构存储数据 2.泛型泛型类 泛型接口 泛型方法 泛型的属性泛型的属性 属性 ...