java - Java中将多个Byte[]添加到一个数组中

标签 java android

我在尝试将多个字节数组添加到一个数组时遇到问题。我不是在这里谈论串联。我需要添加 Byte[] 的各个项目。这就是我正在寻找的。

    byte[] one = [4,5,6];
    byte[] two = [1,2,1];

结果应该是

    byte[] sum = [5,7,7];

这只是一个简单的例子。我正在编写自己的算法来在 android 中混合不同的 pcm 录音。这就是我被困住的地方。任何帮助将非常感激。

更新:

这是我的代码 fragment :

while(stream[1].read()!=-1) {   
List<byte[]> arrayColl = new ArrayList<byte[]>();
for(int i =0; i<recfiles.length; i++) {
stream[i].read(buffer);
arrayColl.add(buffer);
}
}

根据用户的选择,可以有多个流。上面的循环将读取缓冲区中的多个流,并将该缓冲区添加到 ArrayList 中。现在我需要做的是以上面提到的方式混合数组列表中的字节。 bufferbyte[]

最佳答案

要添加多个字节数组,您需要循环遍历每个字节数组,并将结果添加到累加器数组中:

public byte[] sum(byte[]... arrays) {
    // optional: check that arrays.length > 0 (at least one array was passed)
    final int len = arrays[0].length;
    final byte[] result = new byte[len];
    for (byte[] array : arrays) {
        // optional: test that array has length len
        for (int i = 0; i < len; ++i) {
            result[i] += array[i];
        }
    }
    return result;
}

关于java - Java中将多个Byte[]添加到一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16878956/

相关文章:

Java Swing 绘制矩形

java - Java GC 如何清理直接字节缓冲区,因为 IBM 文档说,确实如此。

java - 在Java中制作对数螺旋

java hibernate数据库连接

android - 如何从相同的 url 在 Glide 中重新加载图像?

java - 从启动时启动的服务访问资源

java - 将绘图从 R 调用到 Java 应用程序中

android - 如何将绘图调用和采样器值的更改与单个着色器程序正确混合?

Android 背景颜色无法正确显示

android - AdColony 不断下载视频广告并将其存储在 Android 设备上