如何快速方便地创建一个元素arraylist

 耗子很傻爱钻洞 发布于 2023-02-13 10:11

是否有一个实用方法可以在一行中执行此操作?我无法在任何地方找到它Collections,或者List.

public List stringToOneElementList(String s) {
    List list = new ArrayList();
    list.add(s);
    return list;
}

除非我打算在上面放上花哨的轮辋,否则我不想重新发明轮子.

嗯......类型可以T,而不是String.但你明白了.(所有空检查,安全检查......等)

7 个回答
  • 固定尺寸 List

    最简单的方法,我知道的,是创建一个固定大小的单个元素ListArrays.asList(T...)

    // Returns a List backed by a varargs T.
    return Arrays.asList(s);
    

    可变大小 List

    如果它需要大小不同,你可以构建一个ArrayList固定大小的List

    return new ArrayList<String>(Arrays.asList(s));
    

    (在Java 7+中)你可以使用菱形算子<>来制作它

    return new ArrayList<>(Arrays.asList(s));
    

    2023-02-13 10:12 回答
  • 使用Java 8 Streams:

    Stream.of(object).collect(Collectors.toList())
    

    或者如果你需要一套:

    Stream.of(object).collect(Collectors.toSet())
    

    2023-02-13 10:13 回答
  • 您可以使用实用程序方法Arrays.asList并将结果提供给新的ArrayList.

    List<String> list = new ArrayList<String>(Arrays.asList(s));
    

    其他选择:

    List<String> list = new ArrayList<String>(Collections.nCopies(1, s));
    

    List<String> list = new ArrayList<String>(Collections.singletonList(s));
    

    ArrayList(Collection) 构造函数.

    Arrays.asList 方法.

    Collections.nCopies 方法.

    Collections.singletonList 方法.

    使用Java 7+,您可以使用"diamond operator",替换new ArrayList<String>(...)new ArrayList<>(...).

    Java 9

    如果您使用的是Java 9+,则可以使用以下List.of方法:

    List<String> list = new ArrayList<>(List.of(s));
    

    无论上述每个选项的使用如何,new ArrayList<>()如果您不需要列表是可变的,您可以选择不使用包装器.

    2023-02-13 10:13 回答
  • Collections.singletonList(object)
    

    此方法创建的列表是不可变的.

    2023-02-13 10:13 回答
  • 非常简单:

    Arrays.asList("Hi!")
    

    2023-02-13 10:15 回答
  • 另一个回答全部使用Arrays.asList(),返回一个不可修改的列表(UnsupportedOperationException如果您尝试添加或删除元素,则抛出该列表).要获得一个可变列表,您可以将返回的列表包装成一个新的,ArrayList如同几个答案所指出的那样,但更简洁的解决方案是使用Guava的 Lists.newArrayList()(自2011年发布以来至少可用于Guava 10).

    例如:

    Lists.newArrayList("Blargle!");
    

    2023-02-13 10:15 回答
  • 看到Guava被提及时,我想我也建议使用Eclipse Collections(以前称为GS Collections)。

    以下示例均返回List带有单个项目的。

    Lists.mutable.of("Just one item");
    Lists.mutable.with("Or use with");
    Lists.immutable.of("Maybe it must be immutable?");
    Lists.immutable.with("And use with if you want");
    

    其他集合也有类似的方法。

    2023-02-13 10:16 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有