JAVA基础 之 集合概述

概述:

    1.既然有了数组为什么还需要集合?

       数组长度不可变化,当需要保存数量变化的数据时数组就不太适用了

       不方便表示映射关系(键值对)

    2.java集合分为两大类 Collection和Map,而Collection又分Set和List,这就是我们熟知的java3大集合类 Map、Set、List

    3.Map、Set、List区别简介

       List:有序的,内容可重复的 (长度可变的数组)

       Set:无序的,不可重复的 (一个容器:大筐)

       Map:键值对,键不可重复 (键值对 key-value)

    4.集合不能保存基本数据类型

    5.集合的层级结构图(待续...)

    6.请仔细看程序注释

 

package com.cxy.collection;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class JiHeTest
{
	/** java集合概述
	 */
	public static void main(String[] args)
	{
		//假设幼儿园一班有3个小朋友
		String[] children={"小明","小红","小白"};
		System.out.println("一班有:"+children.length+"个小朋友");
		//现在小黑要进入一班! 没有地方了 因为 幼儿园一班(children数组)只有3个位置
		try
		{
			children[3]="小黑";  //这里会出现数组越界异常,因为数组长度是3,不可变!!
		}catch(Exception e)
		{
			System.out.println("没有位置容下第4个小朋友");
			System.out.println("==================");
		}
		
		//幼儿园一班每个小朋友对应的成绩
		int[] chengji={100,99,98};
		for(int i=0;i<children.length;i++)
		{
			System.out.println(children[i] + "成绩:" + chengji[i]);
		}
		//这样看似好像没什么问题,但是如果数组存储的是大学生信息呢?上万的数据用两个数组对应同序号的数据,难免会出错
		//从上面的例子来看 用两个数组表示映射关系 显然不合适(不直观,易出错)
		System.out.println("==================");
		
		//使用集合解决问题
		List<String> childrenList=new ArrayList<String>();
		childrenList.add("小明");
		childrenList.add("小红");
		childrenList.add("小白");
		childrenList.add("小黑");
		
		for(int i=0;i<childrenList.size();i++)
		{
			System.out.print(childrenList.get(i)+"  ");
		}
		//通过打印可以看出 小黑终于进入了幼儿园一班
		System.out.println("");  //保持打印格式 无实际用处
		System.out.println("==================");
		
		Map<String,Integer> chengjiMap=new HashMap<>(); 
		//注意这里的值是Integer对象,不能是int 因为集合只能是对象不能是基本数据类型。
		chengjiMap.put("小明", 100); //这里之所以能写成基本数据类型是因为他自己封包成Integer对象。
		chengjiMap.put("小红", 99);
		chengjiMap.put("小白", 98);
		//这样就能很清晰的看到成绩表的结构了,下面我们来遍历一下
		for(String one:chengjiMap.keySet())
		{
			System.out.println(one+"成绩:"+chengjiMap.get(one));
		}
		//通过打印结果可以看到map的输出是无序的
	}
}

 

结束语:

    1.本文重点介绍了为什么有数组还需要集合的存在

    2.本文只是概述三大集合特点,并无具体介绍每个集合的用法。(集合需要了解的不仅仅是这三个)

    3.本文涉及到了 数组、异常、泛型、List、Set、Map 如有不懂请关注我博客中相关教程

 

相关文章连接:

1.《JAVA基础 之 Iterator》

2.《JAVA基础 之 Collection》

 

声明:

1.原创文章,转载请标明并加本文连接。

2.更详尽的API请参见  http://docs.oracle.com/javase/7/docs/api/

3.文章反映个人愚见,如有异议欢迎讨论指正 

如何用Timer模型处理多变量时间序列?附完整代码示例 本文深入解析了如何运用清华大学的Timer模型处理多变量时间序列预测任务。通过一个完整的智能工厂设备监控实战案例,详细介绍了从数据预处理、模型构建、训练调优到预测可视化的全流程,并提供了可运行的完整代码示例,帮助开发者掌握这一强大的时序分析工具。 阅读详情

相关推荐

IROS 2025机器人技术解析:从诡异设计到硬核应用

机器人技术正从传统的结构化环境应用,迈向复杂非结构化场景的深度交互。其核心原理在于通过仿生设计、多模态感知与智能控制算法,赋予机器人类似生物的适应性与交互能力。这一技术演进的价值在于突破传统机器人在极端环境、精密操作和自然交互中的瓶颈。例如,结合深度强化学习的全身动力学控制,使机器人能在废墟、管道等复杂地形中自主导航;而软体机器人技术则通过材料变形实现安全、柔顺的抓取操作。这些技术最终服务于极端环境巡检、精密装配和高端陪护等刚性应用场景,推动机器人从功能实现迈向与环境、人进行深度、智能交互的新阶段。

weixin_34006468的博客 446

集合(详细解析)

JAVA集合

Tweek_的博客 1893

银河麒麟系统下VSCode安装全攻略:从下载到桌面快捷方式(附常见问题解决)

本文详细介绍了在银河麒麟系统下安装和优化VSCode的全流程,包括环境准备、安装策略、权限管理、桌面快捷方式创建以及系统级性能调优。特别针对国产系统环境提供了常见问题解决方案和必备插件推荐,帮助开发者高效配置开发环境。

v6b7n8m9q0的博客 1132

集合详解(小白必看)

集合总结详解,小白必看!

m0_57816620的博客 3068

从业10年的AI应用架构师:企业AI平台运营的4个核心经验,值得收藏

去年年底,我在某大型制造企业做AI咨询时,遇到了这样的场景:这不是个例。我接触过的10家企业中,有7家的AI平台都陷入了“技术自嗨”的陷阱——技术团队追求模型精度、功能完备性,却忽略了业务到底需要什么。如果你也遇到过类似问题:比如“模型准确率很高,但业务不买账”“AI项目上线后没人用”“投入产出比极低”,那么这篇文章的4个经验,可能会帮你避开这些坑。很多企业认为,AI平台就是“买一套工具+部署几个模型”。但实际上,企业AI平台的本质是“技术与业务的连接生态”:根据Gartner的报告,80%的企业AI项目失

AI 原生应用开发的博客 709

gesp c++ 五级知识点

gesp c++ 五级知识点

MMD.然大大 2004

集合简介

集合简介集合与列表和元组的区别集合的运算 集合(set)是一个无序的不重复元素序列。 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。 集合与列表和元组的区别 集合只能存储不可变对象 集合中存储对象是无序的 集合中不能出现重复的元素 集合的运算 交际运算& 并集运算| 差集运算- 异或运算^ ...

aizouba的博客 257

手把手教你解决Keil5安装时xerces-c_3_0.dll缺失和0xc000007b报错(附文件下载与路径设置)

本文详细解析了Keil5安装过程中常见的xerces-c_3_0.dll缺失和0xc000007b报错问题,提供了从文件获取、路径设置到系统配置的完整解决方案。同时,文章还涵盖了STM32开发环境的搭建技巧和最佳实践,帮助开发者快速构建稳定的嵌入式开发环境。

weixin_29164497的博客 593

集合介绍

Martin Odersky和Lex Spoon在许多人眼中,新的集合框架是Scala 2.8版本中最重要的变化。斯卡拉之前有过收藏(实际上新的框架与它们基本兼容)。但只有2.8为集合类型提供了一个通用的,统一的和全面的框架。尽管第一眼看到集合的添加是微妙的,但他们在编程风格中所能引起的变化可能是深刻的。事实上,通常情况下,您好像在更高层次上工作,程序的基本构建块是整个集合而不是元素。这种新的编程...

Jason的专栏 237

【SAP HANA 46】关于HANA CPU高峰到 80-100%

关于HANA CPU高峰到 80-100%

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 427

深度学习部署工程师--8(docker+TensorRT部署到推理+yolo人体检测)下

本文介绍了YOLOv5模型通过TensorRT加速部署的流程。首先需要检查磁盘空间,确保有30GB可用。文章对比了不同推理方式的性能:int8量化+TensorRT可达200FPS,纯TensorRT为166FPS,CUDA为147FPS,CPU为93FPS。重点讲解了将YOLOv5模型导出为ONNX格式的详细步骤,包括修改Detect类的forward方法以移除decode运算,使用git patch批量修改代码,安装必要的依赖库,以及通过onnx-graphsurgeon工具修改ONNX图结构。最终目标

FJN110的博客 493

java基础的三大集合体系_Java 基础 33 集合的概述和Collection集合

1.1 集合的概述集合是一个容器,是用来存储和获取数据的.1.1.1 为什么会出现集合类为什么出现集合类:我们学习的是面向对象的编程语言,面向对象的编程语言对事物的描述都是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储,而要想存储多个对象,就不能是基本的变量了,应该是一个容器类型的变量。回顾我们学过的知识,有哪些是容器类型的呢?数组StringBuilder首先说Str...

weixin_42513870的博客 356

使用 MATLAB/Simulink 对风光互补发电系统进行建模

随着全球对清洁能源的需求日益增长,风力发电和光伏发电作为两种主要的可再生能源形式,在电力供应中的占比越来越高。然而,由于风电和光伏的间歇性和不确定性,单独依赖其中任何一种能源都会给电网带来挑战。因此,风光互补发电系统(Wind-PV Hybrid System)应运而生,通过合理配置风力发电机和光伏电池板的数量,可以有效提高系统的稳定性和可靠性。此外,为了确保整个电力系统的安全稳定运行,还需要研究风光互补发电系统与主网之间的协调调度策略。本教程将详细介绍如何使用。

amy_mhd的博客 117

Java 基础 —— 集合框架概述

集合框架图 Java 集合框架主要包括两种类型的容器:一种是集合(Collection),存储一个元素集合;另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型:List、Set 和 Queue。再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。 集合框架内容: 集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容: 1、

IT__learning的博客 1834

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java基础之Map集合概述

Java基础之Map集合概述 简介 map集合又称键值对集合 特点 Map集合都是由键决定的。 Map集合的键是无序,不重复的,无索引的。 Map集合的值可以重复 Map集合键值对都可以为null HashMap:元素按照键是无序,不重复,无索引的 LinkedHashMap:元素按照键是有序的,不重复,无索引的 Map集合的API 添加元素 put 方法 Map<String,Integer> map = new HashMap<>(); map.put(“娃娃”,2);

Dylan_629的博客 244

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Java基础之集合概述一

Java基础之集合概述一 简介 集合是一个大小可以变的容器 集合的特点是,类型可以不确定,大小不固定 集合体系 !集合体系 集合特点 Set 系列集合:添加的元素是无序,不重复,无索引的 HashSet:元素是无序,不重复,无索引的 LinkedHashSet:元素是有序,不重复,无索引的 TreeSet:不重复,无索引,按照大小默认升序排序 List集合:添加的元素是有序,可重复,有索引的 ArrayList: 元素是有序,可重复的,有索引的 LinkedList: 元素是有序,可重复,有索

Dylan_629的博客 159

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java基础(20)——集合概述及List

集合版权声明一、集合概述1、什么是集合2、集合与数组的区别3、集合框架(1)Java集合框架(接口定义)(2)Java集合框架(实现类)(3)什么时候该使用什么样的集合二、Collection1、主要方法2、元素包含3、集合操作(1)集合关系(2)集合实现4、集合转数组5、迭代器(1)Iterator接口三、List1、特有方法(1)常用功能(2)ListIterator(3)集合遍历 版权声明...

清风不渡 277

Java基础——集合框架概述

特点:用来存储对象的容器虽然有很多并且结构不同,但是都具备着共性,可以不断向上抽取,最终就形成集合框架,该框架的顶层之一就是Collection接口。最终使用的时候,其实使用的是该框架最子类的对象。算法:是实现集合接口对象里的方法执行的一些有用的计算。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。类集接口Collection是Iterable的子接口,所以所有类集对象可以迭代访问。Iterable接口允许对象成为“foreach”语句的目标,即该集合对象允许迭代。

weixin_52714017的博客 416

java基础——2——集合概述

Java的集合类主要由两个接口派生而来:Collection和Map。Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。 Set集合 Set集合是Collection集合的子类,与Collection基本上完全一样,它没有提供额外的方法,只是在行为上略有不同。 Set集合不允许包含相同的元素,如果把两个相同的元素加入到同一个Set集合中...

yss的博客 184

java基础:集合概述

集合类介绍 Java的集合类是一种特别有用的工具类,可以用来存储数量不等的对象,并且可以实现常用的数据结构,比如说栈,队列等。除此之外,Java集合可以用来保存具有映射关系的关联数组。java集合大致可以分为四个体系:Set,List,Queue,Map Set:无序,不可重复的集合 List:有序,重复的集合 Map:代表具有映射关系的集合 Queue:队列集合的体现 java集合就...

Lzinner的博客 308

JAVA基础 - 集合类概述

JAVA集合类,ArrayLIst,LinkedList,Vector,HashSet,TreeSet,HashMap,TreeMap。

Pinker_Q 966

Java基础之集合概述

第1节 集合概述Java中的集合分为三大类 Set集合:将一个对象添加到Set集合时,Set集合无法记住添加的顺序,因此Set结合中的元素不能重复,否则系统无法识别该元素,访问Set集合中的元素也只能根据元素本身进行访问; List集合:与数组相似,List集合可以记住每次添加元素的顺序,因此可以根据元素的索引访问List集合中的元素,List集合中的元素可以重复且长度是可变的;

小花生的博客 371

java基础(集合概述)

集合提出的背景: 在没有集合类之前,实际上在Java语言里已经有一种方法可以存储对象,那就是数组。数组不仅可以存放基本数据类型也可以容纳属于同一种类型的对象。数组的操作是高效率的,但也有缺点。比如数组的长度是不可以变的,数组只能存放同一种类型的对象(或者说对象的引用) 另外,在程序设计过程中,程序员肯定会经常构建一些特殊的数据结构以正确的描述或者表达现实情况。比如描述火车进站出站,他们会用到“栈”这个数据结构,常用的数据结构还有:队列、链接表、树和散列表等等。这些数据结构几乎在每一段程序设计过程中都会使用到

朗福德的博客 619

Java基础-集合类-概述

Java工程师知识树 / Java基础 1.为什么要用集合类 Java编程思想中指出: 通常,程序总是根据运行时才知道的某些条件去创建新对象。 在此之前,不会知道所需对象的数量,甚至不知道确切的类型。 为解决这个普遍的编程问题,需要在任意时刻和任意位置创建任意数量的对象。 所以,就不能依靠创建命名的引用来持有每一个对象: MyType aReference; 因为你不知道实际上会需要多少这样的引用。 大多数语言都提供某种方法来解决这个基本问题。Java有多种方式保存对象(应该说是对象的引用)。例如前

hughjin 544

Java基础三:集合概述

集合概述集合新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 集合 集合是Java中的一种容器类,它的主要作用是...

向日葵班学霸的博客 203

java基础集合_java基础篇之集合(一、集合概述)

最近在恶补java基础,复习到集合,觉得有必要在这里记录一下自己的理解(如有错误,欢迎各位小伙伴指出)。首先,当我们在使用java进行编程时,总会遇到一些需要集中存放的多个数据,这时,我们可以选择:“数组” 或者 “集合”,今天我们的主题是“集合”,“数组”以后有机会再去单独写一篇。学习集合首先明白一下两点:1. 什么样的数据可以存放在集合中(或者说需要放在集合中):1)同时集中存放多个数据2)集...

weixin_28921621的博客 80
上一篇: JAVA应用 之 快捷工具托盘
下一篇: JAVA基础 之 Collection
snkcxy
博客等级 码龄19年 0粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值