「java合并stream」Java合并两个有序数组

博主:adminadmin 2022-12-06 04:15:06 76

今天给各位分享java合并stream的知识,其中也会对Java合并两个有序数组进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何使用java合并多个文件

使用java编程语言,对文件进行操作,合并多个文件,代码如下:

import static java.lang.System.out;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.nio.ByteBuffer;

import java.nio.channels.FileChannel;

import java.util.Arrays;

public class test {

 

 public static final int BUFSIZE = 1024 * 8;

 

 public static void mergeFiles(String outFile, String[] files) {

  FileChannel outChannel = null;

  out.println("Merge " + Arrays.toString(files) + " into " + outFile);

  try {

   outChannel = new FileOutputStream(outFile).getChannel();

   for(String f : files){

    FileChannel fc = new FileInputStream(f).getChannel(); 

    ByteBuffer bb = ByteBuffer.allocate(BUFSIZE);

    while(fc.read(bb) != -1){

     bb.flip();

     outChannel.write(bb);

     bb.clear();

    }

    fc.close();

   }

   out.println("Merged!! ");

  } catch (IOException ioe) {

   ioe.printStackTrace();

  } finally {

   try {if (outChannel != null) {outChannel.close();}} catch (IOException ignore) {}

  }

 }

 //下面代码是将D盘的1.txt 2.txt 3.txt文件合并成out.txt文件。

 public static void main(String[] args) {

  mergeFiles("D:/output.txt", new String[]{"D:/1.txt", "D:/2.txt", "D:/3.txt"});

 }

}

java中 两个list怎么合并啊?有list,list1,list2。想要list等于list1和list2相加得到的队列怎么写?

Java将两个list合并,只需要把list1和list2内容都添加都集合list中即可,如下:

package com.test;

import java.util.ArrayList;

import java.util.List;

public class TestA {

/**

 * @param args

 */

public static void main(String[] args) {

//定义集合1

ListString list1=new ArrayListString();

list1.add("a1");

list1.add("a2");

list1.add("a3");

System.out.println("集合1内容:"+list1);

//定义集合2

ListString list2=new ArrayListString();

list2.add("b1");

list2.add("b2");

list2.add("b3");

System.out.println("集合2内容:"+list2);

ListString list=new ArrayListString();

//将集合1的内容全添加到集合中

list.addAll(list1);

//将集合2的内容全添加到集合中

list.addAll(list2);

System.out.println("现在集合内容:"+list);

}

}

运行结果:

集合1内容:[a1, a2, a3]

集合2内容:[b1, b2, b3]

现在集合内容:[a1, a2, a3, b1, b2, b3]

java8中如何将多个集合的数据拼接成一个统一的流

java8中stream的提供了一个拼接流的方法Stream.concat,可以将两个stream拼接成一个stream, 保持了两个stream中的元素顺序。

那么如果我们需要对多个集合中的元素拼接成一个stream来统一处理,可以怎么做呢?

比如有三个CollectionString c1, c2, c3.

方法一,使用Stream.concat方法来拼接,可以使用一个for循环来处理。

private static StreamString concat1(ListCollectionString collections) {

Stream result = Stream.empty();

for (CollectionString strings : collections) {

              result = Stream.concat(result,  strings.stream());

}

return   result;

}

方法二,使用flatMap方法,将集合变成stream, 再压平

private static StreamString concat2(ListCollectionString collections) {

return  collections.stream()

           .flatMap(Collection::stream);

}

对于不同集合类型的数据,如何做成一个统一的流?还是可以使用flatMap方法来做

方法三:

private static StreamString concat3(ListString s1,String[] s2, SetString s3) {

return  Stream.of(s1.stream(), Arrays.stream(s2), s3.stream())

           .flatMap(Function.identity());

}

方法三和方法二相比,可以使用不同类型的集合类型来拼接流,方法二在拥有共同基类的情况下使用会显得简洁很多。

java合并stream的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java合并两个有序数组、java合并stream的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-06,除非注明,否则均为首码项目网原创文章,转载请注明出处。