首页 > 编程语言 >java集合

java集合

时间:2024-09-27 19:11:54浏览次数:7  
标签:扩容 java 数组 List 链表 哈希 集合 结构

Collection(单列集合):List 有序 可重复 :vector 数组结构  线程安全 加了锁

                     :Arraylist 数组结构  不安全 未加锁

                   :LinkedList 链表结构(双向链表) 不安全

           :Set 无序 唯一 :HashSet 哈希表结构 ——(实现类)——LinkHashSet(哈希表和链表结构)

                   :TreeSet 红黑树结构

Map(双列集合):HashTable 哈希表结构 线程安全 (官方不推荐使用)————Properties

        :HashMap 哈希表结构 不安全————LinkHashMap

        :ConcurrentHashMap 哈希表结构

        :TreeMap 红黑树结构

 

复杂度:常对幂指阶

 

ArrayList实现底层原理:1由动态的数组实现的

           2初始容量为0,第一次添加数据时初始化容量为0

           3扩容时变为原来的1.5倍,每次扩容都要拷贝数组

           4添加数据时 确保已使用长度+1后足够存下一个数据 如果大于当前数组长度,调用grow方法扩容,确保有地方存储后添加新元素,最后返回bool值成功

ArralList list = new ArrayList(10) 扩容了几次  :0,构造函数直接初始化,没有扩容

数组和List之间的转换:数组转List,使用Arrays工具类中的asList方法

            List转数组,使用List的toArray方法,需要参数List的长度

 

标签:扩容,java,数组,List,链表,哈希,集合,结构
From: https://www.cnblogs.com/wrf1/p/18436404

相关文章

  • Java中有哪些集合类?常用的几种java集合类总结 详细解读 Java 的集合类
    Java提供了丰富的数据结构选择,用以处理和存储对象,这些对象通过Java的集合类框架(JavaCollectionsFramework)来组织和管理。集合类使得开发者能够更加高效地处理数据,如排序、搜索、迭代等操作。本文将系统地介绍Java的集合类,包括其核心接口、常用实现类以及使用示例。......
  • 事件【JavaScript】
    1.事件事件是用户或浏览器动作的表示,JavaScript中的一切交互都是通过事件来处理的。2. 事件冒泡(EventBubbling)事件冒泡是指事件从最具体的元素(即触发事件的元素)开始触发,然后逐级向上传播到较为不具体的元素(即该元素的父元素、祖先元素),直到到达最顶层的元素(通常是documen......
  • Java基础语法测试
    classEnumTest{publicstaticvoidmain(String[]args){Sizes=Size.SMALL;Sizet=Size.LARGE;System.out.println(s==t);//falseSystem.out.println(s.getClass().isPrimitive());Sizeu=Size.valueOf("SMALL");System.out.println......
  • java计算机毕业设计五邑大学超市网上销售软件设计(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和电子商务的普及,高校内部超市的传统经营模式正面临前所未有的挑战与机遇。五邑大学作为一所充满活力的高等学府,其师生群体对......
  • 计算机毕业设计推荐-基于Java的班级学生签到管理小程序 校园课程管理小程序【源码+讲
    精彩专栏推荐订阅:在下方专栏......
  • JavaScript 网页设计案例详解( 最新技术趋势)
    前言随着JavaScript生态系统的不断发展和浏览器支持的不断完善,2024年的前端开发技术已经变得更加现代化和高效。JavaScript在网页设计中的应用不再局限于基础的交互,它与最新的Web标准、API结合,为开发者带来了丰富的功能和出色的性能优化。本文将通过一个网页设计案例,结......
  • Java设计模式6 - 策略模式
    策略模式策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式的结构策略模式是对算法的包装,是把使用算法的责任和算法本身分开。策略模式通常是把一系列的算法包装......
  • Java中的栈数据结构及其应用
    Java中的栈数据结构及其应用栈是一种线性数据结构,遵循后进先出(LIFO)的原则,即最后插入的元素最先被移除。栈的基本操作包括入栈(push)、出栈(pop)和查看栈顶元素(peek)。本文将介绍栈的基本结构、操作及在JDK中的应用。栈的基本结构一个简单的栈可以用数组或链表实现,下面是基于链......
  • JavaSE笔记_dai01
    标识符(一)标识符的命名规则1.由字母、数字、下划线、$组成,不能由数字开头2.严格区分大小写3.不能使用系统保留字4.参考驼峰命名法(二)标识符的命名规范1.见名知意2.参考驼峰命名法3.类、接口:都首字母大写,其他单词小写4.常量:全部大写,用下划线分割5.方法、变量:首字母小写,后......
  • JavaScript 闭包
    什么是闭包?简单理解:闭包=内层函数+外层函数的变量。正如前面所说的作用域链也会涉及到闭包,如下:leta=6;//全局作用域functionf(){a=7;//父级作用域functiond(){a=8;//自己的作用域console.log(a);}d();}f(); 闭包的官方......