为了账号安全,请及时绑定邮箱和手机立即绑定

解释 List<String> 如何在代码中使用它

解释 List<String> 如何在代码中使用它

守着一只汪 2023-09-27 14:50:49
public static void main(String a[]){        String[] strArr = {"JAVA", "C++", "PERL", "STRUTS", "PLAY"};        List<String> strList = Arrays.asList(strArr);        System.out.println("Created List Size: "+strList.size());        System.out.println(strList);我正在寻找代码的解释String[] strArr = {"JAVA", "C++", "PERL", "STRUTS", "PLAY"};这行意味着我们正在声明一个strArr字符串类型的变量,并且在数组中我们声明了 5 个变量是正确的然后我无法清楚地理解第二行List<String> strList = Arrays.asList(strArr);是strList的对象List<String>?
查看完整描述

3 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

使用下面的代码,您可以将字符串数组转换为固定大小的列表。


List<String> strList = Arrays.asList(strArr);


将数组转换为列表时。您可以对新创建的固定大小列表执行列表的所有操作。对列表进行排序的示例如下。


Collection.sort(strList);


但是使用上面的代码您无法将元素添加到列表中。在列表中添加元素时,它会抛出异常。示例代码如下。


String[] strArr = {"JAVA", "C++", "PERL", "STRUTS", "PLAY"};

List<String> strList = Arrays.asList(strArr);

strList.add("Spring"); // This line will throw exception

System.out.println("Created List Size: "+strList.size());

System.out.println(strList);

如果您想将元素添加到列表中,则必须将字符串数组转换为列表,如下所示。


List<String> strList = new ArrayList<String>(Arrays.asList(strArr));


希望这能帮助您理解它


查看完整回答
反对 回复 2023-09-27
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

Arrays.asList()是java的静态实用程序。它创建了从您(或任何类型的基元/对象)List复制值的操作。array of strings

您可以查看docs.oracle上的文档。a 的好处List是大小是可变的,因此可以添加或删除元素(简而言之,它没有固定大小),而 anarray具有固定大小。这对于ListMutable list默认情况下)是正确的,除非您使用Immutable List像数组一样具有固定大小的数组。


查看完整回答
反对 回复 2023-09-27
?
POPMUISE

TA贡献1765条经验 获得超5个赞

Arrays.asList(T... arr)是一种静态方法,类似于实用程序,它将数组作为输入并返回List<T>由输入数组支持的值。所以,是的,strList是一个List.


在有关“支持”的评论中回答您的问题:


来自 Javadoc:“返回由指定数组支持的固定大小列表。(对返回列表的更改“写入”数组。)”。


因此,列表由数组支持,即对列表内容所做的所有更改都将反映在数组中。例子:


    String[] a = new String[] {"1", "2", "3"};


    List<String> l = Arrays.asList(a);

    l.set(0, "0");


    assert a[0] == "0";


查看完整回答
反对 回复 2023-09-27
  • 3 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信