Java 将数组中的每个元素添加到列表中
将数组中的所有元素添加到列表中最简单的方法是什么 e、 gJava 将数组中的每个元素添加到列表中,java,arrays,list,Java,Arrays,List,将数组中的所有元素添加到列表中最简单的方法是什么 e、 g listl=newarraylist(); //要将下面数组中的每个元素添加到l中吗 byte[]b=“something”.getBytes(“UTF-8”); 有没有什么实用的方法或东西可以做到这一点。我尝试使用addAll,但它希望将实际数组添加到集合中 多谢各位 编辑: 为了澄清这一点,我确实希望使用byte[]执行此操作,因为我最终将把列表转换回byte[],并将其馈送到MessageDigest.update()中。这有助
listl=newarraylist();
//要将下面数组中的每个元素添加到l中吗
byte[]b=“something”.getBytes(“UTF-8”);
有没有什么实用的方法或东西可以做到这一点。我尝试使用addAll,但它希望将实际数组添加到集合中
多谢各位
编辑:
为了澄清这一点,我确实希望使用byte[]执行此操作,因为我最终将把列表转换回byte[],并将其馈送到MessageDigest.update()中。这有助于澄清吗
编辑2:
所以看起来
List
不好;非常糟糕。如果我基本上在MessageDigest中添加字节数组(我正在对一些盐和用户信息进行散列),那么建议使用什么样的数据结构?对于字节[]
,您遇到了麻烦<代码>数组。asList无法工作,因为您使用的是字节[]
而不是字节[]
这是一个“原始vs类”问题。您可能会找到支持此功能的第三方收藏库(如),但我不相信有任何现成的。或者,您也可以自己编写代码:
List<Byte> l = new ArrayList<Byte>();
for (byte b : "something".getBytes("UTF-8"))
{
l.add(b);
}
这将返回一个包装数组的只读列表-如果您想要一个可变列表,您可以将该包装传递给ArrayList
构造函数:
String[] array = ...;
List<String> list = new ArrayList<String>(Arrays.asList(array));
String[]数组=。。。;
List List=newarraylist(Arrays.asList(array));
对于字节[]
,您有麻烦了<代码>数组。asList
无法工作,因为您使用的是字节[]
而不是字节[]
这是一个“原始vs类”问题。您可能会找到支持此功能的第三方收藏库(如),但我不相信有任何现成的。或者,您也可以自己编写代码:
List<Byte> l = new ArrayList<Byte>();
for (byte b : "something".getBytes("UTF-8"))
{
l.add(b);
}
这将返回一个包装数组的只读列表-如果您想要一个可变列表,您可以将该包装传递给ArrayList
构造函数:
String[] array = ...;
List<String> list = new ArrayList<String>(Arrays.asList(array));
String[]数组=。。。;
List List=newarraylist(Arrays.asList(array));
除非您希望在循环中每次添加一个元素,否则可以使用Apache commons'将基本数组转换为对象数组,然后使用addAll()
:
byte[]b=“something”.getBytes(“UTF-8”);
字节[]bArray=ArrayUtils.toObject(b);
列表l=新的ArrayList();
l、 阿道尔(巴里);
除非您希望在循环中每次添加一个元素,否则可以使用Apache commons'将基本数组转换为对象数组,然后使用addAll()
:
byte[]b=“something”.getBytes(“UTF-8”);
字节[]bArray=ArrayUtils.toObject(b);
列表l=新的ArrayList();
l、 阿道尔(巴里);
也许ByteBuffer或ByteArrayOutputStream是更好的选择。那些该死的Java泛型和包装类型!无论如何,如果你不羞于加入一些有用的库,请查看给定的标题,我猜byte只是一个示例。我添加了一些说明,感谢所有的输入,而且我很少使用字节,所以我可以在需要时更改数据结构。也许ByteBuffer或ByteArrayOutputStream是更好的选择。那些该死的Java泛型和包装类型!无论如何,如果你不羞于加入一些有用的库,请查看给定的标题,我猜byte只是一个示例。我添加了一些说明,感谢所有的输入,我很少使用byte,因此我可以在需要时更改数据结构。谢谢回答。我只是觉得不值得添加这个项目,因为我只打算使用它一次。谢谢你的回答。我只是觉得不值得添加这个项目,因为我只打算使用它一次。
byte[] b = "something".getBytes("UTF-8");
Byte[] bArray = ArrayUtils.toObject(b);
List<Byte> l = new ArrayList<Byte>();
l.addAll(bArray);