我有一个初始化的数组,如:
Element[] array = {new Element(1), new Element(2), new Element(3)};
Run Code Online (Sandbox Code Playgroud)
我想将此数组转换为ArrayList类的对象.
ArrayList<Element> arraylist = ???;
Run Code Online (Sandbox Code Playgroud) 这类似于这个问题: 如何在Java中将int []转换为Integer []?
我是Java的新手.我怎么能转换List<Integer>到int[]Java中?我很困惑,因为List.toArray()实际上返回一个Object[],可以强制转换为虚空Integer[]或int[].
现在我正在使用循环来执行此操作:
int[] toIntArray(List<Integer> list){
int[] ret = new int[list.size()];
for(int i = 0;i < ret.length;i++)
ret[i] = list.get(i);
return ret;
}
Run Code Online (Sandbox Code Playgroud)
我相信有更好的方法可以做到这一点.
我有一个int数组:
int[] a = {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)
我需要一个类型集:
Set<Integer> s;
Run Code Online (Sandbox Code Playgroud)
如果我执行以下操作:
s = new HashSet(Arrays.asList(a));
Run Code Online (Sandbox Code Playgroud)
当然,它认为我的意思是:
List<int[]>
Run Code Online (Sandbox Code Playgroud)
而我的意思是:
List<Integer>
Run Code Online (Sandbox Code Playgroud)
这是因为int是一个原语.如果我使用过String,那么一切都会起作用:
Set<String> s = new HashSet<String>(
Arrays.asList(new String[] { "1", "2", "3" }));
Run Code Online (Sandbox Code Playgroud)
A) int[] a...
Run Code Online (Sandbox Code Playgroud)
至
B) Integer[] a ...
Run Code Online (Sandbox Code Playgroud)
谢谢!
如何实现此方法:
List<Integer> toList(int[] integers) {
???
//return Arrays.asList(integers); doesn't work
}
Run Code Online (Sandbox Code Playgroud) 在某些代码中,我正在创建一个Bytes列表,并希望在构建它时将一个字节数组插入到列表中.这样做最干净的方法是什么?请参阅下面的代码 - 谢谢.
public class ListInsert {
public static byte[] getData() {
return new byte[]{0x01, 0x02, 0x03};
}
public static void main(String[] args) {
final List<Byte> list = new ArrayList<Byte>();
list.add((byte)0xaa);
list.add(getData()); // I want to insert an array of bytes into the list here
list.add((byte)0x55);
}
}
Run Code Online (Sandbox Code Playgroud) 将int[]数组元素重新映射到的最佳方法是什么ArrayList?
我需要快速做到这一点,那么最快的方法是什么?
我想我可以从这个问题中推断出来,但我不能
我当然可以
short[] shortarray = {0,1,2};
List<Short> shortList = new ArrayList<Short>();
for (Short s : shortarray) {
shortList.add(s);
}
Run Code Online (Sandbox Code Playgroud)
但我想知道如何用流来做到这一点。
List<Short> shortList = Arrays.stream(shortarray).boxed()
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
例如不起作用,但会产生 The method stream(T[]) in the type Arrays is not applicable for the arguments (short[])
一个简单的Java代码,用于检查数组中是否存在元素:
import java.util.Arrays;
public class Main {
static int[] numbers = {813, 907, 908, 909, 910};
public static void main(String[] args) {
int number = 907;
//Integer number = 907; // the same thing -- it's not found.
boolean b = Arrays.asList(numbers).contains(number);
System.out.println(b); // => false
}
}
Run Code Online (Sandbox Code Playgroud)
1)为什么在阵列中找不到907?
2)如果有更好的方法,请继续分享您的知识.
更新:
据说,asList将您转换int[]成一个List<int[]>成员:原始列表.但是,我希望以下代码能给我1,但它给了我5:
System.out.println(Arrays.asList(numbers).size());
Run Code Online (Sandbox Code Playgroud) 我写了下面的代码,并惊讶地看到输出:
Integer a = 211;
int b = 211;
int[] array = {210,211,212};
System.out.println(Arrays.asList(array).contains(a));
System.out.println(Arrays.asList(array).contains(b));
Run Code Online (Sandbox Code Playgroud)
输出:
false
false
Run Code Online (Sandbox Code Playgroud)
我发现了这个问题以及与之相关的一些其他问题,并了解到该asList方法不是Autobox的东西.我在eclipse javadoc预览中检查了返回的类型:

我无法理解这种返回类型.int[]是一个对象,而不是一个原始,所以它很好.我确定我没有得到List<Integer>(我预期的东西),但我不确定如何使用返回的东西.我的问题是:
这给了我一个错误:
int[] l = new int[] {0, 2, 192, -1, 3, 9, 2, 2};
int[] l2 = new int[] {9001, 7, 21, 4, -3, 11, 10, 10};
int[] l3 = new int[] {5, 5, 5, 64, 21, 12, 13, 200};
Set<List<Integer>> lists = new HashSet<List<Integer>>();
lists.add(Arrays.asList(l));
Run Code Online (Sandbox Code Playgroud)
Eclipse:
add(List<Integer>)类型中的方法Set<List<Integer>>不适用于参数(List<int[]>)
我以为int应该被自动装箱了Integer?
目的: Array.length为我们提供初始化为数组的存储。但是想从初始化的总存储中找出存储在数组中的非空元素的数量。我知道很多方法都是可能的,但这里的问题与我使用的方法有关。
因为ArrayList有一个size()方法可以让我们计算存储的实际元素,而不管初始化的总存储量如何。
所以,我想到将数组转换为ArrayList并找出大小。因此我使用Arrays.asList(a).size()如下所示:
public class Driver {
public static void main(String []args)
{
int a[] = new int[10];
a[0]=30;
a[1]=100;
a[2]=33;
System.out.println((Arrays.asList(a)).size() );
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,无论a[0], a[1], ,它都返回结果为 1 a[2]。
如果我们使用 withArrayList而不是 Array执行相同的步骤,则会得到结果 3:
{
List<Integer> temp = new ArrayList<Integer>(20);
System.out.println(temp.size());
temp.add(20);
temp.add(40);
System.out.println(temp.size());
}
Run Code Online (Sandbox Code Playgroud)
结果是0 2。
问题:是否应该同意实用程序的asListAPI 有Arrays问题,例如错误或限制?
备注:
查看内部实现,我理解asList调用构造函数ArrayList:
public ArrayList(Collection<? extends …Run Code Online (Sandbox Code Playgroud) java ×11
arrays ×5
collections ×3
generics ×3
arraylist ×2
autoboxing ×2
list ×2
java-stream ×1
types ×1