如果您想了解数组的Arrays.asList和的知识,那么本篇文章将是您的不二之选。我们将深入剖析数组的Arrays.asList的各个方面,并为您解答的疑在这篇文章中,我们将为您介绍数组的Array
如果您想了解数组的Arrays.asList和的知识,那么本篇文章将是您的不二之选。我们将深入剖析数组的Arrays.asList的各个方面,并为您解答的疑在这篇文章中,我们将为您介绍数组的Arrays.asList的相关知识,同时也会详细的解释的运用方法,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- 数组的Arrays.asList()(数组的定义)
- ArrayList al = new ArrayList();有什么区别?和ArrayList al = new ArrayList(0)?
- ArrayList
as = new ArrayList(Arrays.asList("印度","澳大利亚", "南非")); - ArrayList
和List 使用到Arrays.asList() - ArrayList与Arrays.asList()返回的列表
数组的Arrays.asList()(数组的定义)
这种转换有什么问题?
public int getTheNumber(int[] factors) { ArrayList<Integer> f = new ArrayList(Arrays.asList(factors)); Collections.sort(f); return f.get(0)*f.get(f.size()-1);}
在从array读取CreateArrayList中找到的解决方案后,我进行了此操作。第二行(排序)getTheNumber(...)
导致以下异常:
线程“主”中的异常java.lang.ClassCastException:[无法强制转换为java.lang.Comparable]
怎么了 我确实意识到可以使用进行排序Arrays.sort()
,但我对此感到很好奇。
答案1
小编典典让我们考虑以下简化示例:
public class Example { public static void main(String[] args) { int[] factors = {1, 2, 3}; ArrayList<Integer> f = new ArrayList(Arrays.asList(factors)); System.out.println(f); }}
在println行中,这会打印类似“ [[I @ 190d11]””的字样,这意味着您实际上已经构建了一个包含int 数组 的ArrayList 。
您的IDE和编译器应警告该代码中未经检查的分配。您应该始终使用new ArrayList<Integer>()
或newArrayList<>()
代替new ArrayList()
。如果您使用过它,则会由于尝试传递List<int[]>
给构造函数而出现编译错误。
从int[]
至没有自动装箱Integer[]
,总之,自动装箱只是编译器中的语法糖,因此在这种情况下,您需要手动进行数组复制:
public static int getTheNumber(int[] factors) { List<Integer> f = new ArrayList<Integer>(); for (int factor : factors) { f.add(factor); // after autoboxing the same as: f.add(Integer.valueOf(factor)); } Collections.sort(f); return f.get(0) * f.get(f.size() - 1);}
ArrayList al = new ArrayList();有什么区别?和ArrayList al = new ArrayList(0)?
ArrayList al = new ArrayList();有什么区别?和ArrayList al = new ArrayList(0)?
ArrayList as = new ArrayList(Arrays.asList("印度","澳大利亚", "南非"));
如何解决ArrayList<Integer> as = new ArrayList(Arrays.asList("印度","澳大利亚", "南非"));?
ArrayList<Integer> as = new ArrayList(Arrays.asList("India","Australia","South Africa"));
上面提到的行编译得很好。我声明了一个整数类型的数组列表变量,但它也存储字符串值。我期待这里出现编译错误。有人可以帮我吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
ArrayList和List 使用到Arrays.asList()
1.将数组转化为列表
将数组转化为一个列表时,程序员们经常这样做:
List<String> list = Arrays.asList(arr);
Arrays.asList()
会返回一个ArrayList对象,ArrayList类是Arrays的一个私有静态类,而不是java.util.ArrayList类,java.util.Arrays.ArrayList类有set()、get()、contains()方法,但是没有增加元素的方法,所以它的大小是固定的,想要创建一个真正的ArrayList类,你应该这样做:
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
ArrayList的构造方法可以接受一个集合类型,刚好它也是java.util.Arrays.ArrayList的超类。
package impotNew;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class test {
public static void main(String[] args) {
String[] strs = {"字符串0","字符串1","222222"};
ArrayList<String> alist =new ArrayList<String>(Arrays.asList(strs));
List<String> list= Arrays.asList(strs);
//Exception in thread "main" java.lang.UnsupportedOperationException
//list.add("song");
alist.add("song");
for(String str : alist){
System.out.print(str+" ");
}
System.out.println();
for(String str : list){
System.out.print(str+" ");
}
}
}
list.add("song");会报错的
ArrayList与Arrays.asList()返回的列表
该方法Arrays.asList(<T>...A)
返回的List
表示形式A
。这里返回的对象是List
数组支持的,但不是ArrayList
对象。
我正在寻找对象Arrays.asList()
返回值与对象之间的差异-ArrayList
一种快速的来源,可以告诉它们而无需深入研究代码。
TIA。
答案1
小编典典当您调用Arrays.asList时,它不会返回java.util.ArrayList
。它返回一个java.util.Arrays$ArrayList
由原始源数组支持的固定大小列表。换句话说,它是使用Java的基于集合的API公开的数组的视图。
String[] sourceArr = {"A", "B", "C"}; List<String> list = Arrays.asList(sourceArr); System.out.println(list); // [A, B, C] sourceArr[2] = ""; // changing source array changes the exposed view List System.out.println(list); //[A, B, ] list.set(0, "Z"); // Setting an element within the size of the source array System.out.println(Arrays.toString(sourceArr)); //[Z, B, ] list.set(3, "Z"); // java.lang.ArrayIndexOutOfBoundsException System.out.println(Arrays.toString(sourceArr)); list.add("X"); //java.lang.UnsupportedOperationException list.remove("Z"); //java.lang.UnsupportedOperationException
您不能向其中添加元素,也不能从中删除元素。如果您尝试从中添加或删除元素,您将获得UnsupportedOperationException
。
关于数组的Arrays.asList和的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于ArrayList al = new ArrayList();有什么区别?和ArrayList al = new ArrayList(0)?、ArrayList
本文标签: