我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

案例解释什么是压缩集合

现在有两个集合: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实现也可以。

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

Linux中有哪些压缩格式的压缩与解压方法

Linux中有哪些压缩格式的压缩与解压方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于P
2023-06-09

Linux下有哪些压缩与解压方法

本篇内容介绍了“Linux下有哪些压缩与解压方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!.tar 解包: tar xvf FileNa
2023-06-10

es6合并两个对象的方法有哪些

ES6合并两个对象的方法有以下几种:Object.assign()方法:该方法将一个或多个源对象的属性复制到目标对象,并返回目标对象。如果目标对象中已经有相同的属性,则会覆盖掉原有的属性值。示例代码:const target = {
2023-10-25

java将文本压缩的方法有哪些

Java中可以使用以下几种方法来压缩文本:使用GZIP压缩:使用Java内置的GZIPOutputStream类来实现文本的压缩。可以将文本写入到GZIPOutputStream对象中,再将压缩后的数据写入到输出流或文件中。使用ZIP压缩:
2023-10-23

Linux系统有哪些常用的压缩解压方法

本篇内容介绍了“Linux系统有哪些常用的压缩解压方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!.tar解包: tar xvf File
2023-06-10

Laravel的集合方法有哪些

这篇文章主要介绍了Laravel的集合方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Laravel的集合方法有哪些文章都会有所收获,下面我们一起来看看吧。Laravel Eloquent 通常返回一个
2023-07-04

Cassandra中的压缩算法有哪些

在Cassandra中,压缩算法通常用于压缩 SSTable 文件以减少存储空间和提高读取性能。以下是一些常用的压缩算法:Snappy:Snappy 是一种快速的压缩算法,它提供了快速的压缩和解压缩速度,并且占用相对较少的 CPU 资源。S
Cassandra中的压缩算法有哪些
2024-04-09

php合并两个数组的方式有哪些

在 PHP 中,可以使用以下几种方式来合并两个数组:使用 array_merge() 函数:$array1 = [1, 2, 3];$array2 = [4, 5, 6];$mergedArray = array_merge($arra
php合并两个数组的方式有哪些
2024-03-04

HBase中数据压缩的方式有哪些

HBase中数据压缩的方式主要有以下几种:Gzip压缩:Gzip是一种通用的数据压缩算法,可以有效地减小数据的大小,节省存储空间。在HBase中,可以通过配置hbase.hregion.memstore.chunkpool.maxsize参
HBase中数据压缩的方式有哪些
2024-03-11

Python集合的常用方法有哪些

这篇“Python集合的常用方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python集合的常用方法有哪些”文章吧
2023-06-29

java遍历集合的方法有哪些

Java中遍历集合的方法有以下几种:1. 使用foreach循环:通过foreach循环可以遍历Collection集合和数组。```javaList list = new ArrayList();for (String item : li
2023-09-27

List集合去重的方法有哪些

本篇内容介绍了“List集合去重的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题由来在实际开发的时候,我们经常会碰到这么一个困
2023-06-27

Android应用中实现图片压缩的方法有哪些

这篇文章将为大家详细讲解有关Android应用中实现图片压缩的方法有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Android图片压缩几种方式总结图片压缩在Android开发中很常见也
2023-05-31

Android常见的图片压缩方式有哪些

小编给大家分享一下Android常见的图片压缩方式有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!先给出一组数据原图:width:2976; height:2976原图实际:--->byte:2299820 Mb:2.
2023-06-15

Java的Collection集合常用方法有哪些

这篇文章主要介绍了Java的Collection集合常用方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java的Collection集合常用方法有哪些文章都会有所收获,下面我们一起来看看吧。1、boo
2023-06-29

编程热搜

目录