当前位置: 首页 > 知识库问答 >
问题:

使用数组。带int数组的asList

淳于典
2023-03-14

使用java.util.rrays.asList,为什么它显示int(原始类型)和String数组的不同列表大小?

a) 使用intarray,每当我执行以下程序时,列表大小=1

public static void main(String[] args) {
        int ar[]=new int[]{1,2,3,4,5};
        List list=Arrays.asList(ar);
        System.out.println(list.size());

    }

b) 但是如果我从int数组类型更改为String数组(比如String ar[]=new String[]{“abc”、“klm”、“xyz”、“pqr”};),那么我得到的列表大小是4,我认为是正确的。

PS:使用Integer(包装类)数组,结果就可以了,但我不确定为什么在primitiveint数组中,列表大小是1。请解释一下。

共有2个答案

桂丰
2023-03-14

List是泛型类型,基元类型不是类型参数的有效替代品。

在第一个例子中,当你调用数组时。asList()对于int[],类型参数的值将是int[],而不是int,它将返回int数组的列表。它只有一个元素,即数组本身。

第二种情况将是一个List

从开济
2023-03-14

由于java泛型的原因,List无法保存原语值(参见类似问题)。所以当你调用数组时。asList(ar)数组创建一个只包含一个项的列表——int数组ar

编辑:

数组的结果。asList(ar)将是一个列表

[ [1,2,3,4,5] ]

您不能从列表本身访问原始的ints。您必须这样访问它:

list.get(0).get(0) // returns 1
list.get(0).get(1) // returns 2
...

我想这不是你想要的。

 类似资料:
  • 我正在尝试用java swing制作一个Tic-Tac-Toe程序,我已经制作了框架。如何让JButton数组中的按钮激活int数组?我希望int数组保存Tic-Tac-Toe网格中点的值,因此当按下按钮时,int数组中的对应点将是0或1,按钮的文本将更改为X或O。

  • 问题内容: 我正在尝试将字符串转换为整数数组,以便随后可以对它们执行数学运算。我在以下代码方面遇到麻烦: 这给了我一个“无法转换的类型”错误,要求:int []发现:char我还尝试了其他一些方法,例如Character.getNumericValue,并且直接对其进行了直接分配,而没有进行任何修改。在那种情况下,无论我使用哪种转换方法或(!)字符串的实际值是什么,它总是输出相同的垃圾“ [I @

  • 之间有区别吗 和 ? 两者都起作用,结果完全相同。哪一个更快或更好?有推荐的款式指南吗?

  • 问题内容: 因为我有一个包含重复项的int数组的ArrayList,所以我想使用HashSet。不幸的是,我无法按需使用HashSet: 结果是: 有人可以告诉我我错了吗? 在此先感谢Dominique(java newbie) 问题答案: 数组不会在类中重写并实现,因此,只有当a1 == a2时,两个数组a1和a2 才被视为彼此相同,这在您的情况下是错误的。 如果使用s而不是数组,则将解决问题,

  • 我正在尝试制作一个程序,要求使用min和max以及数组的长度,根据用户输入的max和min(int或double),它将创建一个int或do倍的数组。我的代码的问题是,当我试图运行它时,编译器说变量尚未初始化。我假设做一个重载方法更好,但我不确定如何做。

  • 是否可以将 ?如果是这样 - ? 我目前正在做一个项目,我需要<code>创建一个包含<code>字母表的字符数组。我当前的创建了一个(应该将