所以有,Arrays.asList(T... a)
但这对可变参数有效。
如果我已经在数组中了T[] a
怎么办?是否有方便的方法来创建List<T>
此文件,或者我必须手动执行以下操作:
static public <T> List<T> arrayAsList(T[] a)
{
List<T> result = new ArrayList<T>(a.length);
for (T t : a)
result.add(t);
return result;
}
仅仅因为它与varargs一起工作并不意味着您不能正常调用它:
String[] x = { "a", "b", "c" };
List<String> list = Arrays.asList(x);
唯一棘手的问题是ifT是Object,您应该在其中使用强制类型转换来告诉编译器是否应将参数包装在数组中:
Object[] x = ...;
List<Object> list = Arrays.asList((Object[]) x);
要么
Object[] x = ...;
List<Object[]> list = Arrays.asList((Object) x);
问题内容: 使用Arrays.asList(something)优于Collections.singletonList(something)来构成包含一项的列表是否有优势(或有很大不同)?后者使返回的列表也不可变。 问题答案: 是 不可变的, 而数组是固定大小的表示形式,列表和数组在堆中连接在一起。 允许对其进行 非结构更改 ,这些 更改 将同时反映到List和联合数组中。 尽管您可以为特定索引设
问题内容: 这种转换有什么问题? 在从array读取CreateArrayList中找到的解决方案后,我进行了此操作。第二行(排序)导致以下异常: 线程“主”中的异常java.lang.ClassCastException:[无法强制转换为java.lang.Comparable] 怎么了 我确实意识到可以使用进行排序,但我对此感到很好奇。 问题答案: 让我们考虑以下简化示例: 在println行
问题内容: 在通过返回不能通过使用方法如被修改或。但是,如果将其传递给该方法,它将可以对数组进行排序而不会出现任何问题(我希望有一个例外)。这似乎是非常不一致的行为。那么,方法返回的对允许的操作是什么? 我在文档中找不到任何线索。 编辑: 是的,我可以理解为什么它不支持或。但是,它如何支持排序呢? 问题答案: 返回由数组支持的固定大小。因此,不支持。支持。您可以像对待数组一样看它。数组的长度固定。
本文向大家介绍Arrays.asList方法总结,包括了Arrays.asList方法总结的使用技巧和注意事项,需要的朋友参考一下 话不多说,请看代码: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!
问题内容: 如果您有一个Array,并且想使用Java8 forEach()方法,那么哪种方法更好或更有效: 要么 差异是否显着,或者有更好的解决方案来解决? 问题答案: 都不行 如果您已经有一个数组, 我会用: 因为您将数组到流的转换留给了JDK-让它负责效率等。 但是,由于您没有数组,因此我将使用的varargs创建值的流: 这又让JDK负责有效地按需传输值。
问题内容: 在执行简单程序时,我注意到了这个问题。 编译错误返回为。但是在Java中是不允许的,为什么会出现这种编译错误? 我没有在这里问关于自动装箱的问题,我只是想知道如何返回。 asList的实现是 因此,将int []视为T才是这种情况的原因。 问题答案: 中的基础int没有自动自动装箱。 实际上是一个对象,而不是原始对象。 在这里返回。确实是无效的语法。 您可以使用: List examp