iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >压缩两个集合的方法有哪些
  • 438
分享到

压缩两个集合的方法有哪些

2024-04-02 19:04:59 438人浏览 薄情痞子
摘要

这篇文章主要介绍“压缩两个集合的方法有哪些”,在日常操作中,相信很多人在压缩两个集合的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”压缩两个集合的方法有哪些”的疑惑

这篇文章主要介绍“压缩两个集合的方法有哪些”,在日常操作中,相信很多人在压缩两个集合的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”压缩两个集合的方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

案例解释什么是压缩集合

现在有两个集合:names和ages

List<String> names = new ArrayList<>(Arrays.asList("张三", "李四", "王五")); List<Integer> ages = new ArrayList<>(Arrays.asList(24, 25, 27));

压缩完之后我们遍历压缩对象变成了下面这种形式:

张三:24  李四:25  王五:27

也就是name:age的键值对的形式,当然,如果我们的集合比较多,我们还可以压缩更多的集合。比如一个人的各种信息,id:name:age等等。

OK,知道了什么是压缩,下面不回长篇大论,直接给出压缩的几种形式,

压缩集合的几种方式

方式一:Java 8的IntStream

List<String> names = new ArrayList<>(Arrays.asList("张三", "李四", "王五")); List<Integer> ages = new ArrayList<>(Arrays.asList(24, 25, 27)); //方式一:java8的IntSream Stream<String> stream = IntStream       .range(0, Math.min(names.size(), ages.size()))       .mapToObj(i -> names.get(i) + ":" + ages.get(i)); //遍历输出 stream.forEach(System.out::println);

这种方式比较简单,获取两个集合的流,然后转化为对象。java8可以直接使用。

方式二:Guava Streams

List<String> names = new ArrayList<>(Arrays.asList("张三", "李四", "王五")); List<Integer> ages = new ArrayList<>(Arrays.asList(24, 25, 27));  //方式二:guava //第一种 Streams.forEachPair(        Stream.of("张三", "李四", "王五"),        Stream.of(1, 2,3),        (name, age) -> System.out.println(name + ":" + age)); //第二种: Stream<String> stream2 = Streams.zip(names.stream(), ages.stream(),          (name, age) -> name + ":" + age); stream2.forEach(System.out::println); //第三种: Stream<String> stream3 = Streams.mapWithIndex(         Stream.of("a", "b", "c"),         (str, index) -> str + ":" + index); stream3.forEach(System.out::println);

以上是几种实现的方式,这位大佬给出了一种,我又去官网找了其他几种。另外使用guava的时候,版本要求21以上。我们在pom文件添加以下依赖即可:

<dependency>     <groupId>com.Google.guava</groupId>     <artifactId>guava</artifactId>     <version>30.1-jre</version>  </dependency>

这里注意使用最新版的就可以。其他的也许会报错。我试了版本21的,也出错。

方式二:Using jOO&lambda; (jOOL)

jOOL还在Java 8 Lambda上提供了一些有趣的新功能,并且通过对Tuple1到Tuple16的支持,zip操作变得更加有趣:

//方式三:jool //第一种 Seq<Tuple2<String,Integer>> s1 = Seq.of("张三","李四", "王五")     .zip(Seq.of(24,25,27)); //第二种 Seq<String> s2 = Seq.of(1, 2, 3)     .zip(Seq.of("a", "b", "c"), (x, y) -> x + ":" + y); //第三种 Seq<Tuple2<String,Long>> s3 = Seq.of("a", "b", "c").zipWithIndex(); s1.forEach(System.out::println); s2.forEach(System.out::println); s3.forEach(System.out::println);

Seq结果是一个压缩元组,我们可以看看。

(tuple(1, "a"), tuple(2, "b"), tuple(3, "c"))

这种方式也是需要添加依赖的。在pom文件添加如下依赖即可:

<dependency>      <groupId>org.jooq</groupId>      <artifactId>jool-java-8</artifactId>      <version>0.9.14</version> </dependency>

ok,还有很多,基本思想都是切成流,再合并。这个直接用java实现也可以。

到此,关于“压缩两个集合的方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 压缩两个集合的方法有哪些

本文链接: https://www.lsjlt.com/news/84010.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 压缩两个集合的方法有哪些
    这篇文章主要介绍“压缩两个集合的方法有哪些”,在日常操作中,相信很多人在压缩两个集合的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”压缩两个集合的方法有哪些”的疑惑...
    99+
    2024-04-02
  • Linux中有哪些压缩格式的压缩与解压方法
    Linux中有哪些压缩格式的压缩与解压方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于P...
    99+
    2023-06-09
  • Linux下有哪些压缩与解压方法
    本篇内容介绍了“Linux下有哪些压缩与解压方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!.tar 解包: tar xvf FileNa...
    99+
    2023-06-10
  • es6合并两个对象的方法有哪些
    ES6合并两个对象的方法有以下几种: Object.assign()方法: 该方法将一个或多个源对象的属性复制到目标对象,并返回...
    99+
    2023-10-25
    es6
  • java将文本压缩的方法有哪些
    Java中可以使用以下几种方法来压缩文本: 使用GZIP压缩:使用Java内置的GZIPOutputStream类来实现文本的压...
    99+
    2023-10-23
    java
  • Linux系统有哪些常用的压缩解压方法
    本篇内容介绍了“Linux系统有哪些常用的压缩解压方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!.tar解包: tar xvf File...
    99+
    2023-06-10
  • Laravel的集合方法有哪些
    这篇文章主要介绍了Laravel的集合方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Laravel的集合方法有哪些文章都会有所收获,下面我们一起来看看吧。Laravel Eloquent 通常返回一个...
    99+
    2023-07-04
  • Cassandra中的压缩算法有哪些
    在Cassandra中,压缩算法通常用于压缩 SSTable 文件以减少存储空间和提高读取性能。以下是一些常用的压缩算法: Sn...
    99+
    2024-04-09
    Cassandra
  • PaddlePaddle中的模型压缩和加速方法有哪些
    PaddlePaddle中的模型压缩和加速方法包括: 网络裁剪(Network Pruning):去除网络中的冗余参数和连接,减...
    99+
    2024-04-02
  • php合并两个数组的方式有哪些
    在 PHP 中,可以使用以下几种方式来合并两个数组: 使用 array_merge() 函数: $array1 = [1, 2,...
    99+
    2024-03-04
    php
  • List集合去重的方法有哪些
    本篇内容介绍了“List集合去重的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题由来在实际开发的时候,我们经常会碰到这么一个困...
    99+
    2023-06-27
  • Python集合的常用方法有哪些
    这篇“Python集合的常用方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python集合的常用方法有哪些”文章吧...
    99+
    2023-06-29
  • java遍历集合的方法有哪些
    Java中遍历集合的方法有以下几种:1. 使用foreach循环:通过foreach循环可以遍历Collection集合和数组。``...
    99+
    2023-09-27
    java
  • HBase中数据压缩的方式有哪些
    HBase中数据压缩的方式主要有以下几种: Gzip压缩:Gzip是一种通用的数据压缩算法,可以有效地减小数据的大小,节省存储空间...
    99+
    2024-03-11
    Hbase
  • java有哪些遍历集合的方法
    java中遍历集合的方法有:1.使用循环方式遍历;2.使用加强for循环遍历;3.使用Lambda表达式遍历;4.使用迭代方式遍历;java中遍历集合的方法有以下几种使用循环方式遍历for (int i = 0; i < listNames...
    99+
    2024-04-02
  • linux的压缩命令有哪些
    linux中常见的压缩命令有:1.gzip命令,用于压缩文件;2.bzip2命令,用于压缩.bz2文件程序;3.tar命令,调用gzip程序对文件进行压缩;inux中常见的压缩命令有以下几种gzip命令linux中gzip命令的作用是用于压...
    99+
    2024-04-02
  • Linux中有哪些文件的压缩与解压缩命令
    本篇文章为大家展示了Linux中有哪些文件的压缩与解压缩命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、zip压缩与解压缩      ...
    99+
    2023-06-12
  • Java的Collection集合常用方法有哪些
    这篇文章主要介绍了Java的Collection集合常用方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java的Collection集合常用方法有哪些文章都会有所收获,下面我们一起来看看吧。1、boo...
    99+
    2023-06-29
  • Android应用中实现图片压缩的方法有哪些
    这篇文章将为大家详细讲解有关Android应用中实现图片压缩的方法有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Android图片压缩几种方式总结图片压缩在Android开发中很常见也...
    99+
    2023-05-31
    android roi
  • JavaScript中set集合的方法都有哪些
    JavaScript中set集合的方法都有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。set方法有:1、add(),用于往集合添加元...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作