JAVA中的集合(概述)

JAVA中的集合(概述)

  1. 什么是集合,有什么用?
    数组其实就是一个集合,集合实际上就是一个容器,可以用来容纳其他类型数据

  2. 集合为什么说在开发中使用较多?
    集合是一个容器,是一个载体,可以一次容纳多个对象。在实际开发中,假设连接数据库,
    数据库中有10条记录,那么假设把这10条记录查询出来,在Java程序中会将10条数据封装
    成10个java对象,然后将这10个java对象放到某一个集合当中,将集合传到前端,然后遍
    历集合,讲一个数据一个数据展现出来。

  3. 集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都
    是java对象的内存地址,(或者说集合中存储的是引用)
    list.add(100); //自动装箱,这里的100 是 Integer类型
    注意:
    集合在java中本身是一个容器,是一个对象
    集合中任何时候存储的都是”引用“

  4. 在java中每一个不同的集合,底层会对应不同的数据结构,往不同的集合中存储元素,等于
    将数据放到了不同的数据结构中,(数据结构就是数据存储的结构,不同数据结构存储方式不同)
    如:数组、二叉树、链表、哈希表…

  5. 所有的集合类和集合接口都在java.util包下

  6. 在java中集合分为两大类:
    一类是单个方式存储元素:
    单个方式存储元素,这一类集合中超级父接口:java.util.Collection;

    一类是以 键值对 的方式存储元素
    以 键值对(key,value) 的方式存储元素,这一类集合中超级父接口:java.util.Map;

总结:

Collection类:

在这里插入图片描述

Map类:

在这里插入图片描述

总结:
Collection接口:
    继承List接口:
        ArrayList:底层是数组
        LinkedList:底层是双向链表
        Vector:底层是数组,线程安全的(有synchronized),效率较低,使用较少
    继承Set接口
        HashSet:底层是HashMap,放到HashSet集合中的元素等同于放到HashMap集合key部分
    继承SortedSet(SortedSet继承Set)接口:
        TreeSet:底层是TreeMap,放到TreeSet集合中的元素等同于放到TreeMap集合Key部分

Map接口
    HashMap:底层是哈希表
    Hashtable:底层也是哈希表,只不过线程安全的(有synchronized),效率较低,使用较少
    继承Hashtable类:
        Properties:是线程安全的(有synchronized),并且Key和value只能存储字符串String
    继承自SortedMap接口(SortedMap继承Map)
        TreeMap:底层是二叉树。TreeMap集合的key可以自动按照大小顺序排开


    List集合存储元素的特点:
        有序可重复,
        有序:存进去的顺序和取出的顺序相同,每一个元素都有下标
        可重复:存进去1,可以再存储一个1
    Set集合存储元素的特点:
        无序不可重复
        无序:存进去的顺序和取出的顺序不一定相同,另外Set集合中元素没有下标
        不可重复:存进去1,不能再存储1SortedSet(SortedMap)集合存储元素特点:
        首先是无序不可重复的,但是SortedSet集合中的元素是可排序的
        无序:存进去的顺序和取出的顺序不一定相同,另外Set集合中元素没有下标
        不可重复:存进去1,不能再存储1了
        可排序:可以按照大小顺序排列

    Map集合的key,就是一个Set集合
    在Set集合中放数据,实际上放到了Map集合的key部分

热门文章

暂无图片
编程学习 ·

由Spring管理的对象的生命周期

注:完整代码在文章最后 生命周期:某个对象从创建到最终销毁会经历的历程! 通常,需要讨论生命周期时,对应的数据类型的对象都不是由开发人员自行维护的! 被容器维护的对象,都是由容器创建对象,并在适当的时候调用其中的某些方法的!而开发人员需要做的就是“确定满足某条…
暂无图片
编程学习 ·

什么是嵌入式培养?要不要选嵌入式培养?

前言 马上要高考了,高考完后势必要面临选专业,本人作为大二的计算机专业老油条,要为想选计算机专业的小萌新们科普科普,什么是嵌入式培养。嵌入式培养的概述 这里的嵌入式,说白了,就是要把社会上的东西,嵌入到学校的教学里 这个概念本来是没有的,但是上级领导认为,计算…
暂无图片
编程学习 ·

Web会话管理

1.会话管理基本原理 1.隐藏域 将表单中的内容在显示页面时隐藏,不显示数据,在JSP 中将input标签type设置为hidden 生成一个隐藏表单域。将会话的唯一标识记录到隐藏域中的value值中,并设定name值。提交给服务器之后,服务器会根据根据会话标识找到会话对象。 缺点:实现比较…
暂无图片
编程学习 ·

牧牛链,牧牛帮排线

牧牛链医疗鉴证区块链 截至到目前为止,国家大数据局尚未完成对所有医疗机构内生成的医疗数据收集整理,也未完成对居民个人健康档案或病历的电子化进程。医疗机构上传数据和居民主动上传意愿不强烈。越来越多的医疗纠纷报道已经严重影响到医生群体的工作热情。许多医生对于基于…
暂无图片
编程学习 ·

Spring——Bean scope

Spring framework 支持6个范围(scope),其中4个只能在用web-aware时才能使用。当然,你也可以创建自定义范围。singleton : spring默认就是singleton,即在注册该bean的时候,会把这个bean存储到单列bean缓存,以后对该bean的所有的后续请求和引用都会返回缓存中的这一个bean…
暂无图片
编程学习 ·

理解持续测试,才算理解DevOps

软件产品的成功与否,在很大程度上取决于对市场需求的及时把控,采用DevOps可以加快产品交付速度,改善用户体验,从而有助于保持领先于竞争对手的优势。作为敏捷开发方法论的一种扩展,DevOps强调开发、测试和运维不同团队间的协作与沟通。持续集成和持续测试是一个在迭代中构…
暂无图片
编程学习 ·

SQL存储过程

什么是存储过程,如何创建一个存储过程 * Stored Procedure * 存储过程=SQL语句+流控制语句定义存储过程定义 create procedure 存储过程名称(【参数列表】) begin 需要执行的语句 end. 创建CREATE PROCEDURE `get_hero_scores`( OUT max_max_hp FLOAT, OUT min_max_mp FLO…
暂无图片
编程学习 ·

综合练习

一、端午节的淘宝粽子交易 import pandas as pd import numpy as npdf1 = pd.read_csv(zongzi.csv) df1.head()标题价格付款人数店铺发货地址0五芳斋粽子礼盒 心悦+18只装咸鸭蛋组合端午节礼品团购嘉兴肉粽子1296人付款五芳斋官方旗舰店浙江 嘉兴1北京稻香村端午粽子手工豆沙粽…
暂无图片
编程学习 ·

计算机网络知识点梳理(上)

计算机网络知识点梳理(上) 参考资料:计算机网络(哈尔滨工业大学:李全龙、聂兰顺)MOOC目录计算机网络知识点梳理(上)1. 基础1.1. 计算机网络结构1.2. 应用模型:1.2.1. 客户/服务器应用模型1.2.2. 对等应用模型(P2P)1.3. 交换设备与交换网络1.4. 多路复用技术1.5. 性能1.5…
暂无图片
编程学习 ·

使用python下载文件

使用requestspython 3.71 下载指定文件 import requestsurl = https://images.jjxsw.la/images/mijjxswcom.gif req = requests.get(url) with open(a.swf, wb) as code:code.write(req.content)
暂无图片
编程学习 ·

Dota 四五号位(辅助)理解

两个辅助打团等于3打5?我怕你是没经历东血魔北迪法南幻刺西巨魔中火枪的年代。你看这阵容是不是5大哥,咋不扎实?要输出有输出,要gank有gank,一个个还灵活得一批。dota发展到如今这个程度,辅助真的是越老越吃香,比如国土比如毛毛鸭比如爱沙尼亚拳王等等。他们的年龄很难做…
暂无图片
编程学习 ·

springboot静态资源无法加载最后原因竟然是拦截器没有生效

今天打开项目,发现页面的样式没了,用F12调试,果不其然,css,js等样式没有加载成功 后面看控制台发现报 No mapping for GET 静态资源。 很明显,访问静态资源的请求被springboot拦截了。 然后我又看自己写的拦截器 @Overridepublic void addInterceptors(InterceptorRegist…
暂无图片
编程学习 ·

git使用(二)部署本地项目到github

部署本地项目到github 初始化 打开Git Bash。 cd到项目文件夹。(直接把文件夹拖入到bash内即可) 执行初始化代码 git init项目文件夹会产生一个.git的文件夹 跟github仓库进行连接 格式:git remote add origin url地址(https或ssh)例如:git remote add origin git@github…
暂无图片
编程学习 ·

python隐秘的角落——笛卡尔之心

随着网剧《隐秘的角落》的热播,让法国数学家、哲学家笛卡尔重回大众视野,他的心形线也在剧情中抢尽风头。 在隐秘的角落剧中,少年宫奥数老师张东升,在课上给同学们讲了这么一个故事: 数学家笛卡尔流落到瑞典,邂逅了美丽的公主克里斯蒂娜。国王知道了这件事后,强行拆散了…
暂无图片
编程学习 ·

靶机实战(DC-4)

DC-4实验环实验过程信息收集主机发现端口扫描服务发现网站指纹漏洞发现漏洞利用提权总结 实验环 靶机:DC-4 测试机:kali(IP:192.168.186.128),win10 实验过程 信息收集 主机发现 netdiscover -I eth0 -r 192.168.186.0/24 nmap -sn 192.168.186.0/24 arp-scan -l ,arp-sc…
暂无图片
编程学习 ·

中国恒大:模范生的“提质增效”

撞线万亿绝不会是恒大的终极目标,在提升自身发展质量的同时,恒大必然会选择更宽广的赛道御风而行,到达万亿规模也只是恒大的又一个新起点。一点财经 严 睿|作者刘 煜|编辑泥沙俱下或者傲立潮头?愈是在行业出现重大波折的阶段,愈能检验企业的发展质量。2020年上半场结束,…
暂无图片
编程学习 ·

数据库原理及应用教程陈志泊-第三章课后习题

一、选择题1. B 2. A 3. C 4. B 5. C 6. C7. B 8. D 9. A 10. D 11. C 12. D二、填空题1. 结构化查询语言2. 数据查询、数据定义、数据操纵、数据控制3. 外模式、模式、内模式4. 数据库、事务日志5. NULL/NOT NULL 、 UNIQUE 约束、 PRIMARY KEY 约束、 FOREIGN KEY …
暂无图片
编程学习 ·

数据结构与算法学习之路------线性结构

数据结构与算法学习之路------线性结构 数据结构又分为线性结构和非线性结构,线性结构为最常用的数据结构。线性结构的特点是数据元素之间存在一对一的线性关系。线性结构又有两种不同的存储结构:顺序存储结构和链式存储结构顺序存储的线性表称为顺序表,顺序表中的存储元素是…
暂无图片
编程学习 ·

用C语言解一元二次方程式的根

#include<stdio.h> #include<math.h> //需要用到一个sqrt()函数,该函数功能用于开方;//该函数运算结果数据类型为double类型;如果涉及到运算请将数据类型定义成浮点型! int main () {float a,b,c,x1,x2;printf("请分别输出方程式的系数,中间以空格分隔\n&…
暂无图片
编程学习 ·

day1

入职第一天 早早去了公司,等了一会儿,hr来带我们入职,准备材料签合同,领办公用品。 根据入职文档及手册进行一系列配置(比较简单,跟着做一般不会出错) 在同事小姐姐的帮助下申请种种权限,下载要用到的软件,搭配环境(最难), 使用的是linux命令进行一系列操作: 打开…