import java.util.HashSet;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.awt.*;
public class hash {
public static void main(String[] args) {
int[] paco = { 1, 2, 3, 4, 5, 5 }; //an array with duplicate items for the set
Arrays.asList(paco);
Set<Integer> set = new HashSet<Integer>(paco);
}
}
Run Code Online (Sandbox Code Playgroud)
这是习惯于从列表创建hashSet的简单练习。首先,我制作了一个数组,然后将其转换为列表,然后尝试将其转换为HashSet,但是出现以下错误: 构造函数HashSet(int [])未定义
与其创建数组然后创建列表,不如直接从您的值创建列表:
List<Integer> paco = Arrays.asList(1, 2, 3, 4, 5, 5);
Set<Integer> set = new HashSet<Integer>(paco);
Run Code Online (Sandbox Code Playgroud)
另一个问题是您没有保存Arrays.asList任何地方的返回值。
如果你只是尝试做Arrays.asList(paco)对的int[],它会返回一个List<int[]>只有一个元素(INT阵列的列表)。那不能用来初始化集合。
如果您确实希望除了集合之外还具有一组值,则可以将它们声明为,Integer而不是int,这将导致将它们装箱,然后从中Arrays.asList创建一个List<Integer>,而不是一个List<int[]>:
Integer[] paco = { 1, 2, 3, 4, 5, 5 };
Set<Integer> set = new HashSet<Integer>(Arrays.asList(paco));
Run Code Online (Sandbox Code Playgroud)
如果您需要将an转换int[]为an Integer[],可以使用Apache Commons的ArrayUtils通过以下方式完成:
Integer[] boxedArray = ArrayUtils.toObject(primitiveArray);
Run Code Online (Sandbox Code Playgroud)
感谢Tomek的小费。
| 归档时间: |
|
| 查看次数: |
1747 次 |
| 最近记录: |