GVKun编程网logo

数组的Arrays.asList()(数组的定义)

2

如果您想了解数组的Arrays.asList和的知识,那么本篇文章将是您的不二之选。我们将深入剖析数组的Arrays.asList的各个方面,并为您解答的疑在这篇文章中,我们将为您介绍数组的Array

如果您想了解数组的Arrays.asList的知识,那么本篇文章将是您的不二之选。我们将深入剖析数组的Arrays.asList的各个方面,并为您解答的疑在这篇文章中,我们将为您介绍数组的Arrays.asList的相关知识,同时也会详细的解释的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

数组的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 al = new ArrayList();有什么区别?和ArrayList al = new ArrayList(0)?

ArrayList<Integer> as = new ArrayList(Arrays.asList(

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<T>和List<T> 使用到Arrays.asList()

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()返回的列表

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 as = new ArrayList(Arrays.asList("印度","澳大利亚", "南非"));、ArrayList和List 使用到Arrays.asList()、ArrayList与Arrays.asList()返回的列表的相关知识,请在本站寻找。

本文标签: