Java中List,Set,数组的互相转换

Love The Way You Lie 2021-12-09 03:57 403阅读 0赞
  1. List转数组

    通过toArray()推荐

    1. //1. 通过 toArray()
    2. List<String> list = new ArrayList<>();
    3. for (int i = 0; i < 10; i++) {
    4. list.add("value" + i);
    5. }
    6. String[] arrays = list.toArray(new String[0]);
    7. System.out.println(Arrays.toString(arrays));
    8. }

    jdk1.8 stream

    1. public static void main(String[] args) {
    2. //2. jdk1.8 stream
    3. List<String> list = new ArrayList<>();
    4. for (int i = 0; i < 10; i++) {
    5. list.add("value" + i);
    6. }
    7. String[] arrays = list.stream().toArray(String[]::new);
    8. System.out.println(Arrays.toString(arrays));
    9. }
  2. 数组转List

    Arrays.asList()

    1. public static void main(String[] args) {
    2. /* * 此种方法生成的List不可进行add和remove操作 * 因为它是一个定长的List集合,跟数组长度一致 */
    3. String[] array = new String[]{ "value1", "value2", "value3"};
    4. List<String> stringList = Arrays.asList(array);
    5. System.out.println(stringList.toString());
    6. }

    通过Collections.addAll(list, arrays)

    1. public static void main(String[] args) {
    2. //2.通过Collections.addAll(list, arrays);
    3. List<String> stringList=new ArrayList<>();
    4. String[] array=new String[]{ "value1","value2","value3"};
    5. Collections.addAll(stringList, array);
    6. System.out.println(stringList.toString());
    7. }

    jdk1.8 通过Stream

    1. public static void main(String[] args) {
    2. //3. jdk1.8 通过Stream
    3. String[] arrays = new String[]{ "value1", "value2", "value3"};
    4. List<String> listStrings = Stream
    5. .of(arrays)
    6. .collect(Collectors.toList());
    7. System.out.println(listStrings.toString());
    8. }
  3. Set转数组

    通过 toArray()

    1. private static void setToArray1() {
    2. Set<String> set = new HashSet<>();
    3. set.add("value1");
    4. set.add("value2");
    5. set.add("value3");
    6. //Set-->数组
    7. String[] array=set.toArray(new String[0]);
    8. System.out.println(Arrays.toString(array));
    9. }

    通过Stream jdk1.8

    1. private static void setToArray2() {
    2. Set<String> set = new HashSet<>();
    3. set.add("value1");
    4. set.add("value2");
    5. set.add("value3");
    6. //Set-->数组
    7. String[] array= set.stream().toArray(String[]::new);
    8. System.out.println(Arrays.toString(array));
    9. }
  4. 数组转Set

    通过先转List之后引入Set

    1. //数组-->Set
    2. private static void arrayToSet() {
    3. String[] array = { "value1","value2","value3"};
    4. Set<String> set = new HashSet<>(Arrays.asList(array));
    5. System.out.println(set);
    6. }

    jdk1.8之后通过Stream

    1. private static void arrayToSet2() {
    2. String[] array = { "value1","value2","value3"};
    3. Set<String> set = Stream.of(array).collect(Collectors.toSet());
    4. System.out.println(set);
    5. }
  5. Set转List

    普遍使用

    1. //set为null会报错
    2. private static void setToList() {
    3. Set<String> set = new HashSet<>();
    4. set.add("value1");
    5. set.add("value2");
    6. set.add("value3");
    7. set=null;
    8. List<String> list=new ArrayList<>(set);
    9. System.out.println(list.toString());
    10. }

    jdk1.8通过Stream

    1. //效率低不推荐
    2. private static void setToList2() {
    3. Set<String> set = new HashSet<>();
    4. set.add("value1");
    5. set.add("value2");
    6. set.add("value3");
    7. List list=Stream.of(set.toArray(new String[0])).collect(Collectors.toList());
    8. System.out.println(list.toString());
    9. }
  6. List转Set

    1. //list为null会报错
    2. private static void listToSet() {
    3. List<String> list = new ArrayList<>();
    4. list.add("value1");
    5. list.add("value2");
    6. list.add("value3");
    7. Set<String> set=new HashSet<>(list);
    8. System.out.println(set.toString());
    9. }

本文转载自简书文章:Java中List,Set,数组的互相转换

发表评论

表情:
评论列表 (有 0 条评论,403人围观)

还没有评论,来说两句吧...

相关阅读