07_Collection集合1

C#集合(Collection) C# 中的集合类(Collection)是专门用于数据存储和检索的类,类中提供了对栈(stack)、队列(queue)、列表(list)和哈希表(hash table)的支持。大多数集合类都实现了相同的接口。集合类的用途多种多样,例如可以动态的为元素分配内存、根据索引访问列表项等等,这些类创建 Object 类的对象集合,Object 类是 C# 中所有数据类型的基类。 阅读详情

集合体系结构

Collection 代表单列集合,每个元素(数据)只包含一个值

Map 代表双列集合,每个元素包含两个值(键值对)

Collection 框架集合

Collection 概述

List 系列集合:添加的元素是有序、可重复、有索引

  • ArrayList、LinekdList:有序、可重复、有索引

Set 系列集合:添加的元素是无序、不重复、无索引

  • HashSet:无序、不重复、无索引
  • LinkedHashSet:有序、不重复、无索引
  • TreeSet:按照大小默认升序排序、不重复、无索引
Collection 常用方法

Collection 是单列集合的祖宗,它的方法是全部单列集合都会继承的

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

public class Test {
    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>();  // 多态写法
        // 1. 添加元素,添加成功返回true
        c.add("java1");
        c.add("java1");
        c.add("java2");
        c.add("java2");
        c.add("java3");
        System.out.println(c);  // [java1, java1, java2, java2, java3]

        // 2. 清空集合的元素
//      c.clear();

        // 3. 判断集合是否为空
        System.out.println(c.isEmpty());  // false

        // 4. 获取集合的大小
        System.out.println(c.size());  // 5

        // 5. 判断集合中是否包含某个元素
        System.out.println(c.contains("java1"));  // true

        // 6. 删除某个元素:如果有多个重复元素默认删除最前面的第一个
        System.out.println(c.remove("java1"));  // true
        System.out.println(c);  // [java1, java2, java2, java3]

        // 7. 把集合转换为数组
        Object[] arr = c.toArray();
        System.out.println(Arrays.toString(arr));  // [java1, java2, java2, java3]

        String[] arr2 = c.toArray(new String[c.size()]);
        System.out.println(Arrays.toString(arr));  // [java1, java2, java2, java3]

        // 8. 把一个集合的全部数据倒入到另一个集合中去
        Collection<String> c1 = new ArrayList<>();
        c1.add("java11");
        c1.add("java22");
        Collection<String> c2 = new ArrayList<>();
        c2.add("java33");
        c2.add("java44");
        c1.addAll(c2);
        System.out.println(c1);  // [java11, java22, java33, java44]
        System.out.println(c2);  // [java33, java44]
    }
}
Collection 的遍历方式

迭代器

迭代器是用来遍历集合的专用方式(数组没有迭代器),在 Java 中迭代器的代表是 Iterator

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

public class Test {
    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>();
        c.add("Jack");
        c.add("Peter");
        c.add("Tomato");
        c.add("wang");
        System.out.println(c);  // [Jack, Peter, Tomato, wang]

        // 使用迭代器遍历集合
        // 1. 从集合对象中获取迭代器对象
        Iterator<String> iter = c.iterator();
//        System.out.println(iter.next());  // Jack
//        System.out.println(iter.next());  // Peter
//        System.out.println(iter.next());  // Tomato
//        System.out.println(iter.next());  // wang
//        System.out.println(iter.hasNext());  // 判断当前迭代位置是否有元素存在 false
//        System.out.println(iter.next());  // 出现异常 NoSuchElementException

        // 2. 结合循环与迭代器,进行集合的遍历
        while (iter.hasNext()) {
            System.out.println(iter.next());
        }

    }
}

增强 for

"增强for"可以用来遍历集合或者数组,"增强for"遍历集合,本质就是迭代器遍历集合的简化写法

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

public class Test {
    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>();
        c.add("Jack");
        c.add("Peter");
        c.add("Tomato");
        c.add("wang");
        System.out.println(c);  // [Jack, Peter, Tomato, wang]

        // 使用增强for遍历集合,或者遍历数组!!
        for (String ele : c) {
            System.out.println(ele);
        }

        int[] arr = {1, 2, 3, 4, 5};
        for (int num : arr) {
            System.out.println(num);
        }

    }
}

lambda 表达式

import java.util.ArrayList;
import java.util.Collection;
import java.util.function.Consumer;

public class Test {
    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>();
        c.add("Jack");
        c.add("Peter");
        c.add("Tomato");
        c.add("wang");
        System.out.println(c);  // [Jack, Peter, Tomato, wang]

        // 方式一(未经过简化)
        c.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });

        // 方式二(lambda简化版)
//      c.forEach(s -> System.out.println(s));
        c.forEach(System.out::println);
    }
}
[集合]Collection源码解析(1) 文章目录Collection源码解析地址:下集预告插播广告 原文地址: https://copyfuture.com/blogs-details/20190910135225856szh6cv83a7xawks 本篇进行介绍Collection接口,不会有很多,防止产生源码恐惧症(别问我哪来的,我瞎编的)。 本篇不会直接上Collection接口的源码,要看源码的,可以移步至github,我专门建... 阅读详情

相关推荐

Windows 11下manage-bde命令实战:BitLocker锁了别慌,手把手教你用命令行找回数据

本文详细介绍了在Windows 11系统下使用manage-bde命令解锁BitLocker加密驱动器的实战方法。通过命令行诊断、恢复密钥获取、解锁流程演示及高级故障排除,帮助用户在系统锁定后快速找回数据,特别适合IT技术人员和遇到紧急情况的用户。

weixin_30902251的博客 328

【JavaSE-07】:集合(1):Collection接口(含源码分析)

【JavaSE-9】:集合一、概述二、Collection接口和常用方法1. Collection常用方法2. Collection接口遍历元素的方式1——使用Iterator(迭代器)3. Collection接口遍历元素的方式2——增强型循环for三、 Collection子接口之一:List接口1. List接口方法2. List实现类之一:ArrayList 一、概述 ● 数组在内存存储方面的特点: 1.数组一旦初始化以后,长度就确定了。 2.数组声明的类型,就决定了进行元素初始化时的类型,保存和操

m0_49167443的博客 310

基于级联H桥的储能变流器仿真与性能优化

本文深入探讨了基于级联H桥的储能变流器,通过仿真建模与性能优化,详细解析了其模块化结构、载波移相SPWM控制策略及核心性能指标。重点攻克了电池SOC均衡难题,介绍了利用零序电压注入实现相内均衡及功率调节实现相间均衡的实战策略,为提升储能系统效率与电池寿命提供了关键技术路径。

gpu4optimizer的博客 370

集合、Collection

1.集合的长度是可变的2.集合中的存储的数据可以是不同类型的 ,如果加上泛型的话就是会有限制3.集合中只能存储引用数据类型4.集合框架是在java.util包下的。

qq_64004825的博客 972

K-means算法代码实现(python)

K-means算法代码实现以及解决质心选择问题 计算距离 距离通常使用欧几里得距离来衡量 def euclDistance(vector1, vector2): return np.sqrt(sum((vector2 - vector1) ** 2)) 初始化质心 def initCentroids(data, k): numSamples, dim = data.shape ...

江南小帅瓜的博客 1万+

工业缺陷检测深度学习方法综述

异常:点异常、 上下文异常和集群异常。点异常:又称为离群值 (outliers)[9], 描述数值上偏离正 常样本的独立数据。与异常相近的概念还包括新颖点(novelty)和分布外数据。上下文异常:同样描述数据点,其数值属于正常范围,但不符合局部上下文规律。集群异常:描述一系列相关数据的集合,集合中的每一个实例的数值在单独考察时都处于正常值域,但集 合整体的相关性特征不服从正常模式。一般的图像异常检测往往仅需区分正常与异常样本,而工业缺陷检测更关注于检测 图像中的异常像素.

2301_80355452的博客 1842

Java 9 新特性—新增只读集合和工厂方法

作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!其实只读集合在编程中还是蛮有用处的,首先只读就意味着不可变,即线程安全,在使用它的过程中我们无需使用同步机制来保护其内部状态。同时只读集合通常比可变集合更加高效。因为它们是不可变的,不需要支持修改操作,因此在内部数据结构上可以进行优化,这可以提高数据访问的速度和降低内存开销。

smart_an的专栏 1077

Python 爬虫实战:分析 AJAX 请求抓取搜狐新闻数据

在Web 2.0时代,大量网站采用AJAX技术实现动态内容加载。传统基于静态HTML解析的爬虫技术(如BeautifulSoup)已无法应对这类场景。本文将以搜狐新闻为实战目标,详解如何通过分析AJAX请求接口实现动态新闻数据的精准抓取。

yansideyucsdn的博客 1750

Java集合(一)—— Collection

Java集合中存放的数据都是以泛型指定,所以Java集合只能存放引用类型数据,基本类型数据是无法存放。三个实现类通用在需要有重复数据的情况下,LinkedList一般使用在大量的插入和删除的情况下,(1)双链表在Java中通过LinkedList的内部类Node(数据域、前指针、尾指针)实现。一般用在查找比较多的情况下,一般使用的都是ArrayList,而在多线程环境下,如果需要使用。比较的是对象的引用(即内存地址),而不是对象的内容或逻辑等价性。(2)每一次使用add增加数据,用的是尾插法增加数据。

weixin_64236449的博客 1588

【UE5】RTS游戏的框选功能+行军线效果实现

步骤: 一、项目准备; 二、框选NPC并移动到指定地点; 三、框选效果; 四、行军线效果

ChaoChao66666的博客 2378

手把手教你学Simulink--基于Simulink的机械臂工业装配任务仿真建模

特点高精度要求:装配过程通常需要非常高的位置精度。多步骤操作:一个完整的装配任务可能包含多个连续的子任务,如抓取零件、移动到特定位置、装配等。动态环境:工作环境可能是动态变化的,例如其他机器人或人员在同一空间内工作。挑战复杂性管理:需要处理复杂的运动学和动力学问题,以及可能的碰撞避免。实时性:某些应用场景下需要快速响应以保证生产效率。集成度:需要与其他系统(如传感器、PLC等)无缝集成。首先明确要模拟的装配任务内容。零件的位置和尺寸。装配顺序。

MHD0815的博客 239

07 集合Collection、增强for、泛型基础使用

07 集合Collection、增强for、泛型基础使用 1、集合的继承体系 2、Collection Collection是一个接口,如果要用,需要使用实现类,最常用的实现类是ArrayList Collection中的常见方法: public boolean add(E e):把给定的对象添加到当前集合中。 public boolean remove(E e...

weixin_45507013的博客 268

SonarQube 完整手册(2026 最新)

摘要: SonarQube是一款静态代码分析(SAST)平台,支持20+语言(如Java/Go/Python),提供Bug、漏洞、代码异味等检测,集成DevOps流水线。其架构包含服务端、扫描器和SonarLint插件。2026年四大版本:免费社区版(基础功能)、开发者版(多分支/PR分析)、企业版(合规治理)、数据中心版(高可用集群)。核心功能包括质量门禁(QualityGate)、密钥泄露检测及六大质量指标。部署推荐Docker+PostgreSQL,扫描支持Maven/CLI方式。

SmallBull的博客 670

Collection集合

1.Collection集合1.1集合体系结构【记忆】 集合类的特点 ​ 提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变 集合类的体系图 ​ 1.2Collection集合概述和基本使用【应用】 Collection集合概述 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素...

xiaoyaGrace的博客 189

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jre9下载 jdk9

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

Collection单列集合(List集合,Set集合),Map双列集合,Stream流

集合,List集合,SET集合,集合的三种遍历方式

Asiyaa的博客 1222

廖雪峰Python教程[完整版]

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

黑马程序员--07.集合框架--01.【Collection接口】

集合框架--1       Collection接口 ----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ 1.    集合类 (1). 使用集合类的原因 [1]. 数据多---->封装成对象 [2]. 对象多---->封装成集合或者数组 (2). 数组和集合的区别 [1]. 长度可变性 数组长度固定的;集合长

歆明正航的专栏 1226

java集合(Collection和Map)

数组在存储数据方面的弊端:1.数组初始化以后,长度就不可变了,不便于扩展2.数组中提供的方法非常有限,对于添加、删除、插入数据等操作,非常不便同时效率不高3.获取数组中实际元素的个数的需求,数组没有现成的属性或方法可用4.数组存储数据的特点:有序、可重复,对于无序、不可重复的需求,不能满足这里是用多态写的,父类引用指向子类对象抽象类和接口都不能实例化,因为collection是接口,所以要创建实现类的对象,调用实现类的方法Collection接口:单列集合,用来存储一个一个的对象。

2401_83191759的博客 895

Java基础系列30-单列 Collection集合

文章目录一.集合的概述1.1 为什么会出现集合类1.2 集合类体系结构图二.Collection集合2.1 Collection集合入门2.2 Collection集合的成员方法2.3 Collection集合的遍历2.4 集合使用步骤图解三. List集合3.1 List集合特点3.2 List集合的特有成员方法3.3 List集合的普通for循环遍历3.4 List集合练习3.5 List.ListIterator();3.6 List并发修改异常四.数据结构4.1 常见数据结构【栈】【队列】4.2

只是甲的博客 1万+

集合collection、Map

clear_0217的博客 162

单例集合(Collection)

Collection集合是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素- JDK 不提供此接口的任何直接实现.它提供更具体的子接口(如Set和List)实现1.1数组和集合的区别- 相同点都是容器,可以存储多个数据- 不同点- 数组的长度是不可变的,集合的长度是可变的- 数组可以存基本数据类型和引用数据类型- 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类1.2 单列集合体系结构List系列集合:添加的元素是有序、可重复、有索引。

weixin_67138897的博客 217

Java集合学习之Collection

1.1 集合概述 集合:集合是java中提供的一种容器,可以用来存储多个数据。 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的。集合的长度是可变的。 数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。 1.2 集合框架 JAVASE提供了满足各种需求的API,在使用这些API前,先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活.

树下一朵云的博客 162

JavaSE基础篇07集合框架

Java集合框架主要分为Collection和Map两大体系。Collection包括List(有序可重复)和Set(无序不可重复)子接口,常用实现类有ArrayList、LinkedList、HashSet、TreeSet等。Map存储键值对,主要实现类有HashMap、TreeMap、Hashtable等。集合提供了添加、删除、查询等操作方法,以及迭代器遍历功能。不同集合类在存储结构(数组/链表/红黑树)、线程安全性和排序特性上各具特点。工具类Collections提供了排序、查找、同步控制等静态方法。

2302_80551135的博客 965

day07 包装类和集合简介collection-list

1.包装类 1)记住Java为每个基本类型都提供了对应的包装类 基本类型 包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 2)为什么提供包装类 为了编程方便 3)掌握如何创建包装类对象 所有的...

木兮兮 290

day07常用API、泛型、Collection集合

1、常用API ①Date日期类 Date类代表了当前系统此时此刻的时间信息对象 //常用构造器 public Date(); public Date(long time); //方法 public long getTime() //返回从1970-01-01 00:00:00走到此刻的总的时间毫秒值。 //1000ms = 1s Java记录时间的两种方式 可以直接用Date日期类对象记录:Date d = new Date(); 可以直接用时间毫秒值:从1970-01-

JayvenJavaUPUP 210

Java 集合Collection 与 Map

之后每次扩充,容量变为原来的 2 倍。JDK1.7 及之前版本的 HashMap 在多线程环境下扩容操作可能存在死循环问题,这是由于当一个桶位中有多个元素需要进行扩容时,多个线程同时对链表进行操作,头插法可能会导致链表中的节点指向错误的位置,从而形成一个环形链表,进而使得查询元素的操作陷入死循环无法结束。二叉树就是每个节点最多有两个子节点的有序树,每个节点及其子节点组成的树称为子树,左侧的节点称为"左子树",右侧的节点称为"右子树",其中左子树上的元素小于它的根结点,而右子树上的元素大于它的根结点。

叼着烟吻着你的香 1131

7集合-List Collection集合 List集合 数据结构 List集合的实现类

1.Collection集合 1.1数组和集合的区别【理解】(视频01) (6‘’) 相同点 都是容器,可以存储多个数据 不同点 数组的长度是不可变的,集合的长度是可变的 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 1.2集合类体系结构【理解】(视频02) (3‘’) Collection是单列集合的顶层接口 单列: 一次存取只能操作一个元素 Map是双列集合的顶层接口 双列: 一次存取只能操作一对元素 1.3Coll

InLoadwetrust的博客 210
上一篇: 06_正则与异常处理
下一篇: 08_Collection集合2
code_stream
博客等级 码龄4年 1238粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值