java的Array,List和byte[],String相互转换的方法你了解嘛

1.Array转List,通过java.util.Arrays.asList(T... a)参数是可变泛型参数

java的Array,List和byte[],String相互转换的方法你了解嘛_第1张图片

注意,Arrays.asList返回的类型是不可变长度的集合,底层是final修饰的泛型数组【泛型数组可以理解为Object[]】

java的Array,List和byte[],String相互转换的方法你了解嘛_第2张图片

java的Array,List和byte[],String相互转换的方法你了解嘛_第3张图片

和我们常用的java.util.ArrayList的区别,java.util.ArrayList底层对象数组没有加final关键词修饰

java的Array,List和byte[],String相互转换的方法你了解嘛_第4张图片

所以Arrays.asList返回的集合不能添加和删除,可以修改指定索引的内容

java的Array,List和byte[],String相互转换的方法你了解嘛_第5张图片

java的Array,List和byte[],String相互转换的方法你了解嘛_第6张图片

2.List转Array用.toArray(T[] a)

java的Array,List和byte[],String相互转换的方法你了解嘛_第7张图片

3.String转byte[]

byte[] sInput = new byte[0];
try {
    // 可以指定编码,默认也只UTF-8
    sInput = "这是内容".getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

4.byte[]转String

// 这里sInput是上面byte[],也是可以指定编码,默认也是UTF-8
String str = new String(sInput, "UTF-8")

byte[]打印到控制台看

org.bouncycastle.pqc.math.linearalgebra.ByteUtils.toBinaryString(sInput)

// 这个方法的源码
    public static String toBinaryString(byte[] var0) {
        String var1 = "";

        for(int var2 = 0; var2 < var0.length; ++var2) {
            byte var3 = var0[var2];

            for(int var4 = 0; var4 < 8; ++var4) {
                int var5 = var3 >>> var4 & 1;
                var1 = var1 + var5;
            }

            if (var2 != var0.length - 1) {
                var1 = var1 + " ";
            }
        }

        return var1;
    }

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!  

你可能感兴趣的:(java的Array,List和byte[],String相互转换的方法你了解嘛)