当前位置: 首页 > 知识库问答 >
问题:

如何快速方便地创建一个单元素arraylist[duplicate]

方焱
2023-03-14

是否有一个实用程序方法可以在1行中执行此操作?我在集合List中找不到它。

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

我不想重新发明轮子,除非我打算在上面加上花哨的轮辋。

好类型可以是T,而不是String。但你明白了。(包括所有零位检查、安全检查等)

共有3个答案

西门品
2023-03-14

可以使用实用方法数组。asList并将结果馈送到一个新的数组列表

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)constructor
  • 数组。asList方法
  • 收藏。nCopies方法
  • 收藏。单音列表方法

在Java 7中,可以使用“菱形运算符”,替换新的ArrayList

Java 9

如果您使用的是Java 9,那么可以使用列表。属于方法:

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

无论使用上述每个选项,您都可以选择不使用new ArrayList

南门棋
2023-03-14
Collections.singletonList(object)

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

相洛华
2023-03-14

据我所知,最简单的方法是使用数组创建一个固定大小的单元素列表。asList(T…)

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

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

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

并且(在Java7中)可以使用菱形运算符

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

集合可以返回一个列表,其中一个元素的列表是不可变的:

Collections.singletonList(s)

这里的好处是IDEs代码分析不会警告单个元素asList(…)电话。

 类似资料:
  • 问题内容: 我想创建一个包含ArrayList 元素的数组。 我试过了 但这似乎不起作用。 问题答案: 您不能创建通用类型的数组。 相反,您可以创建一个。

  • 我正在为某个游戏开发某种“分数跟踪器”应用程序。用户添加一定数量的玩家(当前数量是无限的),然后这些玩家的名字被添加到ArrayList中。然后在下一个活动中,用户必须从一个旋转器中选择一个playername,并为该玩家输入一定数量的“点数”,或者说“分数”。 这是我当前的代码: 现在我要做的是实现一个功能,它将跟踪每个球员的得分。 示例:用户添加了2个玩家,一个叫约翰,一个叫杰克。然后用户给约

  • 我有一个小程序,在2D数组中保存状态对和它们的首都。在此程序下面: 我需要用替换常规的二维数组。 我在stackoverflow上找到了一些线程,如何添加我想要的数组。以下是链接:如何在Java中创建二维ArrayList?以及如何声明2D字符串ArrayList?。但是这些讨论并没有解释如何在每个ArrayList中添加元素。我能做的最好的事情是创建新的ArrayList,然后添加一些元素,最后

  • 问题内容: 我有一个带有几个IBOutlet的自定义单元类。我已经将课程添加到情节提要中。我已连接所有网点。我的cellForRowAtIndexPath函数看起来像这样: 这是我的自定义单元格类: 当我运行该应用程序时,我所有的单元格都为空。我已经注销,它包含所有正确的字符串。我也尝试过将等于标签的实际字符串放入,并产生相同的结果。 我想念什么?任何帮助表示赞赏。 问题答案: 感谢所有不同的建议

  • 我试图实现就地快速排序,最后一个元素作为我的支点。下面附上我的代码 出于某种原因,我的代码给了我一个IndexOutOfBounds异常,它不能准确地对数组排序。我不知道为什么会出现这个错误。 如果我理解正确,我们应该把最后一个元素作为我们的轴心。然后,我们将左指针向右迭代,直到找到一个大于枢轴的元素。之后,我们从右侧(继续向左移动)执行相同的操作,直到找到一个小于轴的元素。然后我们交换这些元素,

  • 问题内容: 在下面的示例中,我希望所有元素都是元组,为什么当元组仅包含单个字符串时,它会转换为字符串? 问题答案: 因为前两个元素不是元组;他们只是字符串。括号不会自动使它们成为元组。你必须在字符串后添加一个逗号,以指示python它应该是一个元组。 要修复示例代码,请在此处添加逗号: 从Python文档: 一个特殊的问题是包含0或1项的元组的构造:语法具有一些额外的怪癖来容纳这些项。空元组由一对