首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Kotlin】集合操作 ② ( MutableList 可变列表集合 | 修改 MutableList 集合的 mutator 函数 )

文章目录 一、MutableList 可变列表集合 二、修改 MutableList 集合的 mutator 函数 1、添加元素运算符 += 和 删除元素运算符 -= 2、通过 Lambda 表达式筛选要删除的元素...一、MutableList 可变列表集合 ---- 使用 listOf 函数 创建的 List 集合 是 只读列表集合 ; 使用 mutableListOf 函数 创建的 MutableList 集合...是 可变列表集合 ; 调用 MutableList#toList 函数 , 可以 将 可变列表集合 转为 只读列表集合 ; 调用 List#toMutableList 函数 , 可以 将 只读列表集合...转为 可变列表集合 ; 代码示例 : fun main() { // 创建可变列表集合 var mutableList = mutableListOf("Tom", "Jerry")...转为 只读列表集合 val list: List = mutableList.toList() // 将 只读列表集合 转为 可变列表集合 val mutable

96830
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Guava学习笔记(2) --- Guava的不可变集合

    /** * Guava的不可变集合用法 * * 创建对象的不可变集合是一种很好的防御性编程技巧; * Guava为所有JDK标准集合类型和Guava集合类型都提供了简单易用的不可变版本; *...* 1、不可变集合的优点: * (1)当对象被不可信的库调用时,不可变形式是安全的; * (2)不可变对象被多个线程调用时,不存在竞态条件问题; * (3)不可变集合不需要考虑变化,...因此可以节省时间和空间; * (4)不可变对象因为有固定变化,可以作为常量来安全使用; * 2、JDK提供的unmodifiableXXX方法笨重且累赘、不安全、低效; * 3、不可变集合的三种创建方法...arrayList = new ArrayList(); arrayList.add(1); arrayList.add(2); arrayList.add(3); //需要使用处理后的不可变集合...Collections.unmodifiableList(arrayList); test(arrayList); System.out.println(arrayList); //如果对不可变集合进行操作会报错

    51520

    不可变集合性能优化:JDK 17与JDK 21中不可变集合的创建与性能改进有哪些?

    不可变集合性能优化:JDK 17与JDK 21中不可变集合的创建与性能改进有哪些? 引言 不可变集合是Java开发中提高代码安全性和性能的关键特性。...在JDK 17和JDK 21中,针对不可变集合的性能和内存占用进行了进一步优化,尤其是在数据结构改进和内存布局调整方面,提升了集合的创建效率和运行性能。...数据拷贝:底层数据结构需要对输入的数据进行拷贝,存在一定的内存开销。 小数据量优化:适合小规模数据,不适合大规模集合的高效创建。 JDK 17中不可变集合的性能改进 1....JDK 21中不可变集合的进一步优化 1. 大规模集合的优化 JDK 21在创建大规模不可变集合时,进一步减少了内存拷贝操作,并优化了数据分布结构,提高了集合的创建速度。...A:JDK 21优化了大数据量场景下不可变集合的性能,减少了内存分配和临时对象的创建,提升了代码执行效率。 Q:哪些场景适合使用不可变集合? A: 数据不需要修改的场景。

    13310

    python学习系列(三)有序可变的数据集合List

    列表是一个有序可变的数据集合,所谓有序是指列表里的数据会按照存入的顺序存储,所谓可变是指列表的长度会随着数据的增多而变长,不是固定大小的长度。 列表作为最为常用的基本数据结构,到底有什么用呢?...比如我们要动态的存取全国的省份,直辖市和自治区,就可以用列表。...所谓索引就是数据在列表中的位置,索引是从0开始数的。...image.png 我们删除索引为1的数据 image.png 江苏被删了,细心的同学可能已经发现了,pop(1)的时候把删除的值'江苏'显示出来了,这是因为pop()方法会在删除的同时把删除的数据返回回来...列表允许重复的数据吗? image.png 恩,列表原来是允许重复的数据的,那有没有不允许重复数据的数据结构呢?有的,请等下回分解。。。

    49610

    String、数组和集合的内存占用大小

    阅读本文需要5分钟左右 简介 之前的文章中,我们使用JOL工具简单的分析过String,数组和集合类的内存占用情况,这里再做一次更详细的分析和介绍,希望大家后面再遇到OOM问题的时候不再抱头痛哭,而是可以有章可循...可以看到数组对象的对象头大小是16字节,再加上数组里面的内容长度是15字节,再加上1位补全。最后得到的大小是32字节。 同样的,我们计算存有100个对象的数组,可以得到下面的结论: ?...当然这只是这个String对象的大小,不包含底层数组的大小。 ? 我们来计算一下String对象的真实大小: String对象的大小+byte数组的大小=24+32=56字节。...treeMap 来个比较复杂的TreeMap: ? 总结 本文用图形的形式形象的展示了集合对象,数组和String在内存中的使用情况。...后面的几个集合我就没有一一计算,有兴趣的朋友可以在下方回复你计算的结果哟。 ·END·

    1K40

    对featureCounts来源的表达矩阵使用DEXSeq分析可变剪切

    分析可变剪切,外显子差异表达呢,我们以前也分享过用法,那个时候是使用示例的表达矩阵。...用DEXSeq分析可变剪切,外显子差异表达 回顾一下featureCounts的命令及表达矩阵结果 使用featurecounts时候,我们通常的命令及参数是: gtf="/home/yb77613/...exon的坐标的reads,然后最后的输出矩阵,以gene_name信息为行。...认识一下DEXSeq的输入表达矩阵 但是使用DEXSeq分析可变剪切,外显子差异表达,需要的不是基于基因的表达矩阵,而是基于exon的,比如官网例子: ?...image-20191106214450287 可以看到我们针对gencode数据库的gtf文件的处理,得到的文件也是符合要求的,跟这个R包自带的果蝇的例子类似,就是记录每个基因的多个转录本坐标,一个基因有多个转录本

    3K31

    算法系列-----矩阵(一)-------------单位矩阵的生成

    ,所以打算把以前涉及到的矩阵方法都给写出来, 矩阵中涉及的各种方法单独的列出来,一个文章只介绍那一种方法,好了,废话不多说,开始吧! 在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,我们称这种矩阵为单位矩阵....对于单位矩阵,有AE=EA=A A[4][4]:如下所示 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 单位矩阵的生成方法...: /** * 生成单位阵 * * @param args * 参数a是一个整型的数,是要输出单位阵的行列数,我们知道单位矩阵是一个方阵,所以只需要参数a即可...单位矩阵很重要的啊。 单位矩阵无平移 缩放 旋转 以后在哪里用到了我就再在这里标注。

    47530

    Python生成指定大小的文件

    针对以上情况,可能一时难以找到符合准确数据的测试文件,这时就可以使用Python来帮助我们生成任意大小的文件,这里提供两种解决方案。...方法1: 使用特定大小的文本重复生成,指定一个文本字符串text,然后将其重复复制直至达到所需的文件大小。...# author: 测试蔡坨坨 # datetime: 2023/6/8 1:31 # function: 使用特定大小的文本生成指定大小的文件 def generate_file(file_path...10MB的PDF文件 generate_file('caituotuo.pdf', 1024 * 1024 * 10) 方法2: 使用特定大小的随机数生成,使用随机数生成器生成特定大小的字节...# author: 测试蔡坨坨 # datetime: 2023/6/8 2:31 # function: 使用特定大小的随机数生成文件 import os def generate_file(file_path

    33710

    Linux如何生成指定大小的文件

    在一些依赖磁盘空间的测试中,或者需要一些大文件时,最好的办法是快速生成指定大小的文件 fallocate命令(推荐) 可以直接分配一个指定容量的真实大小文件,且速度很快。...用法: fallocate -l 5G test.txt --创建一个大小为5G的真实文件(ls ,du都能看到5�G) dd命令 #创建一个5G大的test.txt文件 dd if=/dev/zero...of=test.txt count=10 bs=512M #创建一个5G大的test.txt文件,但显示容量为10G dd if=/dev/zero of=test.txt count=10 bs...=512M seek=10 count 块数量,bs是块大小,seek是从多少块后开始写真实数据 truncate命令 #创建一个10G大的虚拟文件,真实大小是0 truncate -s 10G...10g.txt 文件大小有真实大小和虚拟大小,du命令计算出来的大小是真实大小(du -sh *),ls看到的是虚拟大小 参考 fallocate快速创建大文件

    8K50

    Matlab系列之数组(矩阵)的生成

    要了解一个东西,就应该知道它是如何产生的,这些在之前的文章中都有过接触,所以这边就再简单说下它生成的方法。...除了上面这种最直接的生成,还有一个比较快捷的生成,不过这些数需要是有一定的排列规则,使用的是一个“:”。 比如:A=[1:3;4:6] ?...,接着讲下一种生成矩阵的方法。...2、函数生成 使用一些特殊函数生成特殊的矩阵,在之前的文章中也已经有过记录,不过为了更加系统化,就再进行介绍一下,先演示两个: A=zeros(3,2)%产生3行2列的零矩阵 ?...矩阵 hankel Hilbert矩阵 hilb 逆Hilbert矩阵 invhilb Magic矩阵 magic Pascal矩阵 pascal 托普利兹矩阵 toeplitz 关于矩阵的生成就介绍到这

    1.2K51

    灰度共生矩阵的生成和理解

    在网上看了很多灰度共生矩阵生成的例子感觉都没有说明白,要不就直接上结果要不就给一堆看不懂的代码和公式,后来看了matlab中的介绍就明白了,其实很简单,仔细把下面的看三遍就理解怎么来的了! ?...GLCM表其实就是所有像素可能的组合,比如,GLCM(1,1)就是I中像素值为1和1的组合,GLCM(4,5)就是I中像素4和像素5的组合,GLCM(i,j)的值呢就是I中像素为i,像素为j的有有多少和相邻的成对点...这个相邻有个规则:就是f(x,y),f(x+a,y+b)相邻,就是只有x相隔a的单位,y相隔b个单位,我们认为是相邻的。...于是就有了: a=1,b=0 时我们就说水平相邻:也就是0度的时候 a=1,b=1 时我们就说对角相邻,也就是45度的时候  a=-1,b=1时 即135度 其他角度类似。...后面好多的性质,都是在把这个矩阵计算出来之后再在这个基础上运算的,那些就不难了!

    85430

    Java源码分析:Guava之不可变集合ImmutableMap的源码分析

    在Google Guava官方教程中,Immutable前缀的集合被定义为不可变集合,包括ImmutableSet、 ImmutableMap等,何为不可变集合?...那么,什么是可再修改的呢,像Jdk中的map、list等,创建后,还可以再通过put()或者add()反复新增或者修改,这种就是可再修改的集合。既然是不可再修改集合,是不是就一定不能再修改了呢?...也不是,其实,通过反射还是可以被修改的,但这已经不是不可变集合之所以存在的初衷了。 总结一句话是,不可变集合是线程安全的且可当成常量使用的。...builder(),在这个builder()方法里,就会返回一个new Builder()的对象,这个对象通过构造器,初始化了一个大小为ImmutableCollection.Builder.DEFAULT_INITIAL_CAPACITY...这就是ImmutableMap集合不可变的真正原因所在。 最后,还有一个问题是,当通过ImmutableMap创建完成一个Map对象后,再试图通过put来插入数据时,会发生什么情况呢?

    66020

    基于可变自动编码器(VAE)的生成建模,理解可变自动编码器背后的原理

    理解可变自动编码器背后的原理 ? 使用VAE生成的人脸生成 生成模型是机器学习中一个有趣的领域,在这个领域中,网络学习数据分布,然后生成新的内容,而不是对数据进行分类。...生成建模最常用的两种方法是生成对抗网络(GAN)和可变自编码器(VAE)。在这篇文章中,我将尝试解释可变自动编码器(VAE)背后的原理,以及它是如何生成上述面的数据的。...因此,可变自动编码器试图通过添加调节器来解决这一问题,避免过拟合,并确保潜在空间具有良好的连续性特征,使生成过程成为可能。...可变自动编码器(VAE) 可变自动编码器能够通过正则化潜在空间,使其像下面这样连续地生成新的数据,因此,允许在不同属性之间实现平滑的插值,并消除可能返回不理想输出的间隙。 ?...而在可变自编码器中,编码器将x转换为潜在变量p(z|x)的概率分布,然后对潜在变量z随机采样,再由解码器解码成重构输出。 ? 自编码器(确定性)和可变自编码器(概率性)的区别。

    1.6K41

    python meshgrid_numpy的生成网格矩阵 meshgrid()

    numpy模块中的meshgrid函数用来生成网格矩阵,最简单的网格矩阵为二维矩阵 meshgrid函数可以接受 x1, x2,…, xn 等 n 个一维向量,生成 N-D 矩阵。...生成网格矩阵,并且根据条件筛选,重新赋值为0,1二值图像 clear all;close all; %生成二值图 index= randperm(2500,1000); %生成10个不重复随机指标 Z...这个转载还是先放着 … numpy中的matrix矩阵处理 numpy模块中的矩阵对象为numpy.matrix,包括矩阵数据的处理,矩阵的计算,以及基本的统计功能,转置,可逆性等等,包括对复数的处理,...– jiangsujiangjiang的博客 – CSDN博客 一.使用系统方法 二.用指定的数 … numpy中生成随机矩阵并打印出矩阵的shape from numpy import * c=zeros...()生成元素是等差数列的数组.

    1.3K20

    单细胞计数矩阵是如何生成的?(二)

    (一)】后,介绍scRNA-seq的表达矩阵是如何生成。后续实战分析内容,请关注下方公众号: 1....一般工作流程如下所示: 单细胞工作流程 工作流程的步骤是: 计数矩阵的生成:formating reads, demultiplexing samples, mapping and quantification...也就是说,如果您想得出与总体相对应的结论,请做生物学重复。 4. 计数矩阵 首先讨论此工作流程的第一部分,即从原始测序数据生成计数矩阵。...测序后,要么将原始测序数据输出为 BCL 或 FASTQ 格式,要么生成计数矩阵。如果读取是 BCL 格式,那么需要转换为 FASTQ 格式。bcl2fastq 工具可以轻松执行此转换。...对于许多 scRNA-seq 方法,从原始测序数据生成计数矩阵经历的步骤类似。 alevin[1] 是一个命令行工具,用于估计 scRNA-seq 数据的表达,其中转录物的 3' 末端被测序。

    88320

    【Groovy】集合遍历 ( 使用集合的 collect 循环遍历集合并根据指定闭包规则生成新集合 | 代码示例 )

    文章目录 一、使用集合的 collect 循环遍历集合并根据指定闭包规则生成新集合 二、代码示例 一、使用集合的 collect 循环遍历集合并根据指定闭包规则生成新集合 ---- 调用集合的 collect...方法进行遍历 , 与 调用 each 方法进行遍历 , 实现的功能是不同的 ; collect 方法主要是 根据 一定的转换规则 , 将 现有的 集合 , 转换为一个新的集合 ; 新集合是 重新创建的集合..., 与原集合无关 ; 分析集合的 collect 方法 , 其传入的的参数是一个闭包 transform , 这是 新生成集合的规则 ; 在该函数中调用了 collect 重载函数 collect(self..., new ArrayList(self.size()), transform) , 传入了新的 ArrayList 集合作为参数 , 该 新的 ArrayList 集合是新创建的集合 , 其大小等于被遍历的集合...collect 方法中 , 为新创建的集合赋值 , 根据 transform 闭包逻辑 和 原集合的值 , 计算 新集合中对应位置元素的值 ; /** * 方法遍历此集合,将每个值转换为新值

    2.6K20

    JVM系列之:String,数组和集合类的内存占用大小

    简介 之前的文章中,我们使用JOL工具简单的分析过String,数组和集合类的内存占用情况,这里再做一次更详细的分析和介绍,希望大家后面再遇到OOM问题的时候不再抱头痛哭,而是可以有章可循,开始吧。...可以看到数组对象的对象头大小是16字节,再加上数组里面的内容长度是15字节,再加上1位补全。最后得到的大小是32字节。 同样的,我们计算存有100个对象的数组,可以得到下面的结论: ?...注意最后面的Object数组,如果数组中存储的不是基础类型,那么实际上存储的是执行该对象的指针,该指针大小是4个字节。...再加上hash,coder,和hasIsZero属性,最后的大小是24字节。 我这里使用的是JDK14的String版本,不同的版本可能有所不同。...当然这只是这个String对象的大小,不包含底层数组的大小。 ? 我们来计算一下String对象的真实大小: String对象的大小+byte数组的大小=24+32=56字节。

    66210
    领券