跳至主要內容

hint - List初始化

codejava hint约 227 字小于 1 分钟

带初始值的初始化

  • 如果是 java 9+, 可以直接使用 list.of

    List<String> list = List.of("a", "b", "c");
    
    List<String> list = List.of(
      new Student("aaa",1),
      new Student("bbb",2),
      new Student("ccc",3),
    );
    

    这种方式创建的列表 不可修改,add()remove() 都会抛出 UnsupportedOperationException

  • 但如果是 java 8,就没有这个,可以使用 Stream

      List<Student> list1 = Stream.of(
          new Student("Alice", 20),
          new Student("Bob", 21),
          new Student("Charlie", 22)
      ).collect(Collectors.toList());
    
特性List.of(...)Stream.of(...).collect(Collectors.toList())
Java 版本要求Java 9 及以上Java 8 及以上
是否可变❌ 不可变(immutable)✅ 可变(mutable)
是否支持增删元素❌ 抛出 UnsupportedOperationException✅ 支持 .add() / .remove() 等操作
是否允许包含 null❌ 不允许,包含会抛出 NullPointerException✅ 允许包含 null
是否简洁✅ 更简洁较繁琐,但功能灵活
实际返回的 List 类型通常为 ImmutableCollections.ListN通常为 ArrayList
上次编辑于: