【发布时间】:2013-12-19 23:11:51
【问题描述】:
是否有一个实用方法可以在 1 行中执行此操作?我在Collections 或List 的任何地方都找不到它。
public List<String> stringToOneElementList(String s) {
List<String> list = new ArrayList<String>();
list.add(s);
return list;
}
我不想重新发明轮子,除非我打算在轮子上装上花哨的轮辋。
嗯...类型可以是T,而不是String。但你明白了。 (包括所有空值检查、安全检查等)
【问题讨论】:
-
好吧,你根本不应该使用那种方法。调用方法的地方,把调用替换成你要找的“单行”变换即可。
-
我的意思是,您想将方法内的所有内容都转换为一行,对吗?好吧,那么这种方法实际上并没有做任何没有它就无法完成的事情。你会做的是,
return Arrays.asList(s);。但是那个额外的方法有什么意义呢?它只是充当代表。只需将其删除。无论你打电话给stringToOneElementList(s),还是打电话给Arrays.asList(s),就是这样。 -
哦,好吧,我想我明白了。好吧,我有这种方法的唯一原因是因为我不知道“神奇的一班轮”在哪里。因此,这就是为什么我首先问了这个 stackoverflow 问题。如果我已经知道那一行
Arrays.asList(s),那我为什么要在stackoverflow上问我的问题?我惊讶地发现这种方便的方法是在数组中而不是在集合中。 -
Arrays是一个实用程序类,其中包含您可能不时使用的各种其他方法。之所以在Arrays类中使用此方法,是因为该方法实际上是从array转换为list。该方法被定义为采用 var-args。因此,您传递给它的任何参数都仅在内部转换为数组。然后从中创建一个列表。所以,这是它指定的地方 -Arrays。 -
Java 的设计是将任意数量的字符串转换为列表,其中仅包含 1 个字符串(但也意味着只有一种方法可以这样做)。在其他语言中,做某事的方法不止一种,所以我只想知道最好的方法(在这种情况下,只有一种方法),例如,ruby,你可以说“blah.first”和“blah.last” " 而不是像 "blah[0]" ,它非常方便且更具可读性。在 Java 中,情况似乎并非如此。对不起,希望这是有道理的
标签: java arraylist collections