Java中的容器解析----集合.1

深入解析Java中的Vector集合类! 在Java开发中,集合类是非常常用的数据结构。在这些集合类中,Vector是一个非常有用的类,可以在需要动态添加或者删除元素的时候快速操作数据。本文将会对Java中的Vector集合类进行深入解析。首先,我们将会介绍Vector的概述和源代码解析。然后,我们将会通过一个应用场景案例来展示Vector的使用方法。接着,我们会对Vector的优缺点进行分析。最后,我们将会介绍类代码方法和测试用例,并对全文进行小结和总结。Vector是Java的一个集合类,它是线程安全的。 阅读详情

关于写博客这简直,真的要吐槽一下自己,永远都是忘记再忘记,每次公司新来的小伙子们问的问题总是记下来想要写到博客,却总是因为工作一忘再忘.
在这里提醒看到文章的程序员同志们,一定要坚持自己的好习惯,无论是手写笔记还是云笔记,一定要将自己所学的东西归纳整理,形成自己的知识体系,这样用的时候才不会不知从何下手,这也是刚入行或者刚毕业的同行的通病吧.
之前开始写sql的小函数问题是因为公司新来的同时老是遇到解决不了的问题,完了之后就硬干,写一大堆代码,调用一堆表,各种自连接,外连接,这样跑起来不仅慢还占用资源,正确率也无法保证,话说回来,每个程序员写代码都有自己的风格,谁会脑子瓦特去看别人的代码啊,我连自己写的代码都懒得去看第二遍,手动狗头三连.
这两天问题又变了,居然是一些Java基础的集合问题,所以借机会重新归纳一下集合的相关基础应用知识,感兴趣的可以再往深研究去看源码,这里就不过多介绍了
话不多说,上干货

集合概念

集合是用来存储多个类型数据的容器,她的长度是可以变化的(一般的定义都是说存储同一类型的数据,这是指实际开发中,集合的底层实际上支持多种类型数据同时存储,但实际开发中读写不方便)

集合的体系

集合体系图


记忆点:
1.集合的顶层都是**接口**,其中Collection接口是所有*单列集合*的顶层接口,Map接口是所有双列集合的顶层接口
2.Collection接口有两大子体系:
-->list体系:特点是有序,可重复,其中有序指的不是排序,而是写入和读取顺序一致
-->Set体系:特点是无序,唯一,无序定义同上
学习集合密不外传小技巧:   ***学顶层,用底层***  手动狗头三连,这谁不知道 哈哈


## 一 Collection集合---单列集合
**1.如何创建对象**
为什么一直强调接口呢?用屁股想都知道啊,学习接口的时候都知道,接口不能直接通过new关键字来创建对象(杠精们说匿名内部类的你滚,匿名内部类实际上是另一只对接口的实现,可以理解为创建了其子类对象,用于实现接口)
所以一般创建Collection集合所使用的方法是通过其子类对象来创建
代码如下


```java
Collection<String> list = new Arraylist<String>();
解释:
1.集合后边的<数据类型>是泛型的意思, 泛型是用来限定集合中存储元素的数据类型的,
这里的泛型中的数据类型说明该集合只能存储字符串,
2.泛型只能是引用数据类型,且在实际开发中,泛型一般只结合集合来一起使用. 

2.需求:
----创建Collection集合对象, 用来存储字符串.
----调用Collection接口的add()方法, 往上述集合中添加3个字符串, 内容如下:
“hello”, “world”, “java”
----通过输出语句, 直接打印集合对象, 并观察结果.
参考代码如下:


public class Demo01 {
    public static void main(String[] args) {
        //1.创建Collection集合对象, 用来存储字符串.
        //Collection<String> coll = new ArrayList<String>();
        //JDK1.7以后, 可以简化成: 如下格式
        Collection<String> coll = new ArrayList<>();
        //2.调用Collection接口的add()方法, 往上述集合中添加3个字符串, 内容如下:"hello", "world", "java"
        coll.add("hello");
        coll.add("world");
        coll.add("java");
        //3.通过输出语句, 直接打印集合对象, 并观察结果.
        System.out.println("coll: " + coll);        //ArrayList类已经重写了Object#toString()方法.
    }
}

3.Collection集合的成员方法
常用方法如下:
---- public boolean add(E e) 添加元素.
---- public boolean remove(Object obj) 从集合中移除指定的元素.
----public void clear() 清空集合对象
----public boolean contains(Object obj) 判断集合中是否包含指定的元素
---- public boolean isEmpty() 判断集合是否为空
---- public int size() 获取集合的长度, 即集合中元素的个数
方法的调用就不用说了吧
对象名.方法调用就可以了,这里要注意返回值

4.遍历集合

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

//案例: 演示集合的遍历.
/*
    涉及到的方法:
        Collection集合中的方法
            public Iterator<E> iterator();      根据集合对象, 获取其对应的迭代器对象.
        Iterator迭代器中的方法:
            public boolean hasNext();           判断迭代器中是否有下一个元素.
            public E next();                    获取迭代器中的下一个元素.
    结论: 总结的集合的使用步骤  记忆
        集合的使用分为4大步3小步.
        1. 创建集合对象.
        2. 创建元素对象.
        3. 把元素对象添加到集合对象中.
        4. 遍历集合.
            4.1 根据集合对象获取其对应的迭代器对象.          Collection#iterator();
            4.2 判断迭代器中是否有下一个元素.                Iterator#hasNext();
            4.3 有就获取.                                    Iterator#next();
 */
public class Demo03 {
    public static void main(String[] args) {
        //1.通过多态的形式, 创建Collection集合对象.
        Collection<String> coll = new ArrayList<>();
        //2.调用Collection接口的add()方法, 往上述集合中添加3个字符串, 内容如下:"hello", "world", "java"
        /*String s1 = "hello";
        coll.add(s1);*/
        coll.add("hello");
        coll.add("world");
        coll.add("java");
        //3.通过迭代器遍历集合, 获取到每一个元素, 并打印到控制台上.
        //3.1 根据集合对象获取其对应的迭代器对象.
        //多态
        //接口                 Iterator接口的子类对象
        Iterator<String> it = coll.iterator();
        //3.2 判断迭代器中是否有下一个元素.
        while (it.hasNext()) {
            //3.3 有就获取, 然后输出.
            String s = it.next();
            System.out.println(s);
        }
    }
}

5.集合的使用步骤总结
集合的步骤可以分为四大步三小步, 具体如下:

  1. 创建集合对象.
  2. 创建元素对象.
  3. 把元素添加到集合中.
  4. 遍历集合
    4.1.根据集合对象获取其对应的迭代器对象.
    通过Collection#iterator()方法实现.
    4.2.判断迭代器中是否有下一个元素.
    通过Iterator#hasNext()方法实现.
    4.3.如果有, 就获取该元素.
    通过Iterator#next()方法实现.

6.附送理解性辅助需求
6.1 定义一个学生类, 属性为姓名和年龄.
6.2 创建Collection集合, 用来存储学生对象.
6.3往Collection集合中, 添加3个学生的信息.
6.4通过迭代器, 遍历集合.
参考代码:

public class Demo04 {
    public static void main(String[] args) {
        //1. 创建集合对象.
        Collection<Student> coll = new ArrayList<>();
        //2. 创建元素对象.
        Student s1 = new Student("刘亦菲", 33);
        Student s2 = new Student("赵丽颖", 31);
        Student s3 = new Student("高圆圆", 35);
        //Student s4 = new Student("丹丹", 18);
        //3. 把元素对象添加到集合对象中.
        coll.add(s1);
        coll.add(s2);
        coll.add(s3);
        //coll.add(s4);
        //4. 遍历集合.
        //4.1 根据集合对象获取其对应的迭代器对象.          Collection#iterator();
        Iterator<Student> it = coll.iterator();
        //4.2 判断迭代器中是否有下一个元素.                Iterator#hasNext();
        while (it.hasNext()) {
            //4.3 有就获取.                                Iterator#next();
            Student stu = it.next();
            System.out.println(stu);

            //不能写成如下的形式, 因为next()方法调用一次, 就会获取一个值.
            //下边这个代码就属于: 判断一次, 获取两个值.
            //System.out.println(it.next().getName() + "..." + it.next().getAge());
        }
    }
}

下篇文章讲Collection下的List集合及其特有的成员方法
同志们栽未!

2026中银杯区块链赛项备赛全攻略:从任务书拆解到高分技巧 区块链技术正从概念走向工程化落地,其核心价值在于通过分布式账本、智能合约与共识机制,构建可信、透明、可追溯的业务协作网络。在供应链溯源、存证、资产流转等场景中,区块链应用已从单一技术验证转向完整业务系统交付,这对开发者的综合能力提出了更高要求。对于职业院校技能大赛而言,选手不仅需要掌握联盟链底层搭建、Solidity合约开发、前后端应用联调等技术,还需具备规范交付与团队协作的工程素养。围绕2026年中银杯湖北省职业院校技能大赛区块链技术应用赛项,本文深入拆解任务书模块与评分逻辑,梳理底层链搭建、智能合约开发 阅读详情

相关推荐

借助OSS搭建在线教育视频课程分享网站-阿里云的课程体验和记录

阿里云的《搭建在线教育网站》免费课程里面讲的啥,我点进去看了看

LegendNoTitle的博客 3023

java集合类详解_java常用集合类详解(有例子,集合类糊涂的来看!) .

Framework集合框架是一个统一的架构,用来表示和操作集合.集合框架主要是由接口,抽象类和实现类构成.接口:蓝色;实现类:红色Collection|_____Set(HashSet)| |_____SortedSet(TreeSet)|_____List(LinkedList,ArrayList)Collection:集合层次中的根接口,JDK没有提供这个接口的实现类。Set:...

weixin_42232139的博客 223

Windows/Mac/Linux三系统保姆级教程:用llama.cpp将safetensors模型转gguf格式(附常见错误解决)

本文提供Windows、Mac和Linux系统下使用llama.cpp将safetensors模型转换为gguf格式的详细教程,涵盖环境配置、转换原理及常见错误解决方案。通过跨平台兼容性处理,帮助开发者高效完成模型格式转换,优化边缘计算性能。

weixin_29227425的博客 268

Java-集合类

1、Java中的集合类可以分为两大类:一类是实现Collection;另一类是实现Map接口。 2、Collection:add、addAll;clear、remove、removeAll;contains、containsAll、isEmpty;size;iterator(迭代器)。 3、增强for,编译器会自动换成 Iterator迭代器。 4、集合类容纳的对象都是Object类的实例,一旦把一个对象置入集合类中,它的类信息将丢失,也就是说,集合类中容纳的都是指向Object类对象的指针。

weixin_40017062的博客 1326

《python神经网络编程》程序实现

《python神经网络编程》程序实现 通过对这本书的学习,结合这本书的内容: 完成了以下代码: 其中NN.py实现了一个类,这个类可以完成神经网络的初始化,训练以及输入数据并得出结果。 而run.py则是对神经网络类的使用 NN.py: import numpy import scipy.special #神经网络类的实现 class neuralNetwork: #构造函数初始化类 def __init__(self,inputnodes,hiddennodes,outputnodes

ms8617484的博客 618

1991-2020年气候背景数据集

2011 年,国家气象信息中心对 1951-2010 年 2400 余个地面站气温、气压、降水、湿度、日照等 19 大要素项的定时观测资料和日极值资料中由数字化过程中引起的系统性问题(例如数字化遗漏、整段拷贝等问题)进行质量检测、质量控制和错误数据的更正,形成较高质量的地面基础资料集。1991-2020年中国地面气候值数据集提供了中国2438个站点的气温、降水、气压、风向风速、相对湿度、水汽压、云、天气现象、能见度、蒸发、积雪、地温、冻土、日照共14个要素的气候背景信息。数据时间:30年平均。

地球资源数据云的官方博客 1592

Java集合容器总结

HashMap 存储结构 HashMap 的底层数据结构是什么? JDK1.8之前:数组+链表;数组为主体,链表来解决哈希冲突——发生哈希冲突后,使用头插法将冲突值放入链表头部 JDK1.8之后:Node数组+链表+红黑树实现,当链表长度超过阈值(8)且数据总量大于等于64时,将链表(查询时间复杂度为O(n))转换为红黑树(时间复杂度为O(log n)),极大的提高了查询效率 为什么在解决 hash 冲突的时候,不直接用红黑树?而选择先用链表,再转红黑树? 红黑树在插入和删除元素时需要进行左旋,右旋,变色等

weixin_45907832的博客 1163

3.1 快速启动Flink集群

在本实战中,我们将快速启动Apache Flink 1.13.0集群,并在Hadoop集群环境中提交作业。首先,我们会在本地下载Flink安装包并上传至云主机,解压并配置环境变量。接着,我们将启动Flink集群,通过访问Web UI进行监控管理。然后,我们会配置集群,将Flink分发到从节点,并在集群上提交作业。最后,我们将通过命令行提交作业,并在Web UI上查看任务节点的输出结果。这个过程涵盖了Flink集群的部署、配置和作业提交,为大数据处理提供了一个完整的实战经验。

howard2005的专栏 727

集合框架

集合论引述  集合论是现代数学中重要的基础理论。它的概念和方法已经渗透到代数、拓扑和分析等许多数学分支以及物理学和质点力学等一些自然科学部门,为这些学科提供了奠基的方法,改变了这些学科的面貌。计算机科学作为一门现代科学因其与数学的缘源,自然其中的许多概念也来自数学,集合是其中之一。如果说集合论的产生给数学注入了新的生机与活力,那么计算机科学中的集合概念给程序员的生活也注入了新的生机与活力。  

herosen的专栏 647

[3.4]【机器人运动学MATLAB实战分析】PUMA560机器人逆运动学MATLAB计算

PUMA560是六自由度关节型机器人,其6个关节都是转动副,属于6R型操作臂。各连杆坐标系如图1,连杆参数如表1所示。本文对PUMA560机器人逆运动学进行分析并MATLAB计算

m0_72676510的博客 1947

TSP:车为什么能和云端交互?

TSP:车为什么能和云端交互?

天赐好车的博客 408

Java 集合下.md

文章目录7、 Map 接口HashMapHashMap 实现原理增加HashtableLinkedHashMapTreeMapJDK1.8 新加入的方法ComparatableCollections 工具类排序操作查找和替换同步控制设置不可变集合其他Optional 容器类Queue 和DequeDeque迭代器设计模式guava 对集合的支持 7、 Map 接口 public interface...

LEIQINGQI的博客 316

手把手教你学Simulink——光伏储能系统双向DC-AC逆变器恒功率控制(PQ控制)仿真

本文详细介绍了光伏储能系统中双向DC-AC逆变器的恒功率控制(PQ控制)仿真方法。主要内容包括:1)PQ控制原理及其在光伏满发和储能充放电中的应用;2)系统架构设计,重点推导了功率到dq电流的数学映射关系及电流内环控制算法;3)Simulink建模步骤,涵盖功率电路搭建、PLL设计、电流参考转换等关键环节;4)仿真结果分析,验证了系统在10kW光伏满发和-5kW储能充电模式下的稳态精度和动态切换性能;5)工程实践建议,包括数字控制延迟补偿、低电压穿越处理等实际问题解决方案。该指南为新能源并网系统的功率精准控

MHD0815的博客 423

Java集合容器简介

Java集合容器主要有以下几类: 1,内置容器:数组 2,list容器:Vetor,Stack,ArrayList,LinkedList, CopyOnWriteArrayList(1.5),AttributeList(1.5),RoleList(1.5),RoleUnresolvedList(1.5), ConcurrentLinkedQueue(1.5),ArrayBlocki

Robin Hu的专栏 6355

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

java容器精讲(Java容器基本说全了),带源码讲解,集合,同步类容器,并发容器,队列

java几乎所有常用容器介绍,源码解析

殷志鹏的博客 5898

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java容器之集合(1)

1、Java容器已经有了数组,为什么还需要引入集合容器概念?因为数组的使用有其局限性。我们知道数组的定义如下:数组可以用来存储一组相同类型的数据。数组一旦初始化完成,则数组长度就固定了,不能自动扩容。很多时候,我们存储数据时都不确定数据的个数有多少,所以很难确定数组的长度,而不给定数组的长度,则数组就无法定义。而定义一个超长数组,则可能会造成内存和性能的浪费,定义一个小数组,又可能会出现数组越界,数组容量不足等情况。所以为了实现一个动态容量的容器,java就引入的集合的概念。

D1561691的博客 822

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java中的集合(List、Set、Map集合使用大解析)

List、Set、Map集合使用大解析

weixin_39038328的博客 1603

Java集合容器面试题

最新的 Java 面试题,技术栈涉及 Java 基础、集合、多线程、Mysql、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…等等,会持续更新。

qq_42872034的博客 1715

Java集合容器面试题大全(2024最新版,附全面解析和答案)

Java 集合框架(Java Collections Framework)是Java中的一个基础框架,用于处理集合、数组等数据结构。掌握Java集合框架不仅是Java开发的核心要求,也是面试官考察候选人编程能力的重要部分。本文将涵盖Java集合框架的基础知识、高级功能及其常见面试题,让大家全面掌握Java集合容器,以应对面试中的各种问题。

科技改变人类,技术成就未来 1262

Java中的集合

思维导图 Collection接口 容器:顾名思义,从字面上的理解就是能够容纳很多东西的器皿; 我们已经有各种各样的变量了,难道那个就不是容器了吗? 及时变量不够,我们还有数组呢? 解答:一个人事管理系统,我们可以通过new很多个name变量来解决,但是如果这个系统有成千上万个人呢?那我们是不是需要new成千上万个name呢?当然不是,这样也太可怕了。那有人会说,我们可以定义一个数组...

王华春_Jason 723

Java集合之List容器

上一篇文章中我们介绍了Collection和迭代器以及遍历集合的几种方式,Collection容器分为以List和Set两大类,这篇文章我们首先介绍一下List及其实现类。 List List容器中存放的元素是有序且可重复的,主要实现类为ArrayList,LinkedList和Stack。 //返回容器中指定位置的对象 E get(int index); //替换指定位置的元素 E se...

博客 1115

JAVA集合的三种集合容器详解

JAVA框架有三种集合容器 1.Collection 2.Map 3. Array、Arrays 一、Collection Collection包含三个子类,List、Set、Queue. List List 元素可重复,且有序。ArrayList和LinkedList是List的子类。 集合名称 存储结构 时间复杂度 优缺点 ArrayList ...

阿尔法小师妹 1442

Java的集合容器

Java的集合容器 文章目录整体集合架构ArrayListAPI分类要点源码解读默认容器初始容量并发容器异常HashSetAPI分类要点源码解读HashSet的底层容器实现HashMapAPI分类要点源码解读JDK1.7源码put方法流程图JDK1.8源码put方法流程图 整体集合架构 返回目录 面向接口编程 Collection List ArrayList LinkedList Set HashSet TreeSet Map HashMap HashTable Link.

干嘛卷来卷去的博客 398

java集合(容器)

1、java容器有哪些? java 中的集合容器分为两类,一类为Collection,另外一类为Map。 Collection集合主要分为两个类,一类是实现List 接口的 如 LinkedList、ArrayList、Vector 等,实现List接口的集合元素可重复,可填充多个null值,元素顺序跟插入顺序一致,是有序的。另外一类是实现了Set 接口的如 HashSet、TreeSet、LinkedHashSet 等,而实现set接口的集合的元素不可重复,最多可存放一个null值,针对HashSet而言

qq_32627651的博客 981

深入整理java集合容器

前言 辛苦准备两三天,转载希望指明原处。 http://blogs.xzchain.cn java容器是每个java开发者必须打交道的东西,简单来说容器就是可以装载其他java对象的对象。自jdk1.2开始JCF(Java Collections Framework)为java开发者提供了通用的容器。 思考下为什么需要容器呢? 《thinking in java》书...

starlh35的博客 5149

Java中的容器-集合

最基本两个容器:变量、数组----变量是最小的数组 **集合:**可以存储多个数据(对象)且长度可变的容器 java.util 接口 Collection–>E代表泛型–>泛型表示集合的元素类型 由于集合泛型的指定:集合的类型只能是引用数据类型 int []arr;//arr的类型是数组类型(引用类型),元素类型是int类型 Collection c;//c的类型是接口类型(引用类型),元素类型是String类型 Collection是所有集合的顶级接口 List Set Queu

虚空掠夺者~ 191
上一篇: sql之每天一个小函数
下一篇: Java中的容器解析----集合.2
是番茄鱼啊
博客等级 码龄6年 3粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值