String[]和List<String>的区别及相互转换

版权声明:知识本无差别,何必在意你我? https://blog.csdn.net/qq_33774822/article/details/83188727

在这里插入图片描述

Hello,everybody。好几天不见啦,我一直在想着怎么整场大戏,琢磨写个好点的文章。(其实是因为玩了一个星期,emmmm,因为懒)。

1.两者的区别

结构方面:

List< String >:泛型,非定长,可变。
在这里插入图片描述
String[]:数组,定长,不可变。
在这里插入图片描述

使用方面:

他们的作用一样,但是灵活性不一样。
List< String >是可以方便使用的,如果不能确定数组的长度,或者需要不断的像中间插入一个字符串,可以用List< String >。
String[]是定长的,如果能确定字符串数组的长度,可以使用String[]。

2.两者的相互转换

先看代码:

public class test {
  public static void main(String[] args) {
    //定义一个字符长度为5的字符串
    String[] strings = new String[5];
    strings[0] = "a";
    strings[1] = "b";
    strings[2] = "c";
    strings[3] = "d";
    strings[4] = "e";

    //调用Arrays中的asList方法将String[]转化为List<String>
    List<String> list = Arrays.asList(strings);
    System.out.println("list<String>:"+list.toString());

    //调用toArray方法将List<String>转化为String[]
    String[] strs = list.toArray(new String[]{});
    System.out.println("String[]:"+Arrays.toString(strs));
  }
}

输出的结果是:
在这里插入图片描述
代码中已经写明了两者转换时,所采用的方法,大家好好看代码哦。
本来到这里就结束了,可是我在上面的过程又发现了一个好玩的(拿我丽颖镇楼,虽然已成人妇,哭唧唧)。
在这里插入图片描述
下面,如果我在刚才的代码中加入了添加方法,那么结果是什么样的呢,代码如下:

public class test {
  public static void main(String[] args) {
    //定义一个字符长度为5的字符串
    String[] strings = new String[5];
    strings[0] = "a";
    strings[1] = "b";
    strings[2] = "c";
    strings[3] = "d";
    strings[4] = "e";

    //调用Arrays中的asList方法将String[]转化为List<String>
    List<String> list = Arrays.asList(strings);
    System.out.println("list<String>:"+list.toString());

   //为list添加一个元素
   list.add("f");
    System.out.println("list<String>:"+list.toString());
  }
}

大家猜猜看,这样出来的结果是啥,下篇说哈,传送门来了。UnsupportedOperationException异常
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33774822/article/details/83188727