`
悲剧了
  • 浏览: 144264 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Arrays.asList(T... a)使用问题

 
阅读更多
以下代码:
public static void main(String[] args) {
	    //经多次测试,只要传递的基本类型的数组,生成List的元素个数均为1  
	    char[] arrc = {'a','b'};  
	    int[]  arrint = {1,2,4};
	    print(Arrays.asList(arrc).size()) ;//  结果为1;  
	    print(Arrays.asList(arrint ).size()) ;//结果为1;  
	       
	    //传递对象数组,元素个数正确。  
	    String[] arrstr = {"a","b","java","spring","hadoop","lucene"};  
	    print( Arrays.asList(arrstr ).size() );//结果为6;  
	}


为什么有如此问题:该方法的arraylist不是我们常用到的arraylist,是一个内部类
    public static <T> List<T> asList(T... a) {
	return new ArrayList<T>(a);
    }

如下:
private final E[] a;

	ArrayList(E[] array) {
            if (array==null)
                throw new NullPointerException();
	    a = array;
	}

基本类型不能充当泛型,传入时候,自动当成了数组类型
分享到:
评论

相关推荐

    Java Arrays.asList使用方法解析

    public static &lt;T&gt; List&lt;T&gt; asList(T... a) { return new ArrayList(a); } private static class ArrayList&lt;E&gt; extends AbstractList implements RandomAccess, java.io.Serializable { private final E[] a; ...

    Java中Arrays.asList()方法详解及实例

    该方法的签名为`public static &lt;T&gt; List&lt;T&gt; asList(T... a)`,它可以接受变长参数,通常情况下是一个数组参数。然而,在将基本类型数组转换为列表时,需要特别注意,因为基本类型不能作为泛型的参数。 问题来源 在...

    Java用Arrays.asList初始化ArrayList实例方法

    public static &lt;T&gt; List&lt;T&gt; asList(T... a) { return new ArrayList(a); } ``` 可以看到,Arrays.asList 方法实际上返回的是一个 ArrayList 对象,但是这个 ArrayList 对象不是 java.util.ArrayList,而是一个内部...

    java 源码分析Arrays.asList方法详解

    public static &lt;T&gt; List&lt;T&gt; asList(T... a) { return new ArrayList(a); } ``` 这里的关键在于,`Arrays.asList()`返回的是一个由`Arrays`类内部定义的`ArrayList`实例,而不是`java.util.ArrayList`。这个内部`...

    商品分类代码标准代码

    String sql = "select t_fl.f_name,t_fl.f_remark,t_sp.s_name,t_sp.s_price,t_sp.f_id from t_fl,t_sp where t_fl.f_id=t_sp.f_id"; stmt = conn.prepareStatement(sql); rs = stmt.executeQuery(); ...

    java中的Arrays这个工具类你真的会用吗(一文秒懂)

    - **`asList(T... a)`** 这个方法将变长参数数组转换为一个`List`对象。例如: ```java List&lt;Integer&gt; list = Arrays.asList(2, 4, 5, 6, 6); ``` 源码中,`asList`方法创建了一个`ArrayList`,并将传入的数组...

    关于 Java Collections API 您不知道的 5 件事,第 1 部分

    此外,`Arrays.asList()` 可以接受可变数量的参数 (varargs),使得创建包含多个元素的 List 变得更为简便。 #### 2. 迭代的效率问题 在处理集合时,经常需要将一个集合的内容转移到另一个集合中,或者从一个较大的...

    Java数组操作方法总结2.pdf

    要将数组转换为Set集合,可以使用`Arrays.asList()`方法先将数组转换为列表,然后将列表传递给Set的构造函数: ```java String[] stringArray = {"d", "e", "b", "c", "a"}; Set&lt;String&gt; set = new HashSet...

    阿里开发规范(集合与并发处理)

    **强制规定**:通过 `Arrays.asList()` 方法将数组转换为集合时,不应使用集合的修改方法(如 `add`, `remove`, `clear`),因为这些方法会抛出 `UnsupportedOperationException` 异常。 **说明**:`Arrays.asList`...

    深入理解Java函数式编程和Streams API

    List&lt;String&gt; names = Arrays.asList("Alice", "Bob", "Charlie"); names.stream().filter(name -&gt; name.startsWith("A")).forEach(System.out::println); ``` ##### 2.2 方法引用 方法引用是一种更简洁的方式来...

    vuex学习网址111111111

    public static &lt;T&gt; List&lt;T&gt; asList(T... a) ``` 此方法接受一个或多个类型为 `T` 的元素作为参数,并返回一个固定大小的列表。 **示例**: 假设有一个字符串数组 `String[] fruits = {"apple", "banana", "cherry"}...

    JAVA十大新性详解.doc

    List&lt;String&gt; names = Arrays.asList("peter", "anna", "mike", "xenia"); Collections.sort(names, new Comparator() { @Override public int compare(String a, String b) { return b.compareTo(a); } }); ```...

    Java中List与数组相互转换实例分析

    在Java编程中,List和数组是两种常见的数据结构,它们各有特点,但有时我们需要在两者之间进行转换。...通过正确使用`toArray(T[] a)`方法和`Arrays.asList()`,可以有效地在List和数组之间进行安全转换。

    jdk8新特性.md

    List&lt;String&gt; strings = Arrays.asList("a", "b", "c"); List&lt;Integer&gt; lengths = strings.stream().map(String::length).collect(Collectors.toList()); ``` - 构造器方法引用: ```java List&lt;Person&gt; ...

    arrayliSt---listDemo

    ArrayList可以与其他集合类型互相转换,如转化为数组`toArray()`,或从数组创建ArrayList`Arrays.asList(T... a)`: ```java Object[] array = list.toArray(); ArrayList&lt;String&gt; fromArray = new ArrayList...

    Java集合List与Array的相互转换

    2. 将Array转换为List时,使用`Arrays.asList(T... a)`,但得到的List不支持修改操作。 3. 在处理`Arrays.asList()`返回的List时,避免调用添加、移除或清空元素的方法,以免抛出异常。 了解这些知识点后,你将在...

    Java实现类排序

    List&lt;Person&gt; personList = new ArrayList(Arrays.asList(people)); Collections.sort(personList); ``` 然而,有时候我们可能需要根据不同的标准或逻辑进行排序,例如按照姓名的首字母排序。这时,可以使用`...

    java泛型总结.docx

    `这里,编译器通过分析`add("hello")`和`add("world")`,推断出`Arrays.asList()`方法的类型参数应该是`String`。 5. **泛型边界**:泛型边界可以规定类型参数必须满足的条件。例如,`public static &lt;T extends ...

    jdk7新特性

    static&lt;T&gt;List&lt;T&gt; asList(T... elements) { //... } ``` 在JDK 7中,如果在方法调用时不指定类型参数,编译器将在方法定义处发出警告,提示开发者应明确类型,从而提高了代码的健壮性和清晰度。 ### 3. switch...

    java8新特性

    Arrays.asList("a", "b", "d").forEach(e -&gt; System.out.println(e)); ``` Lambda 可以自动推断参数类型,也可以显式指定,如 `(String e) -&gt; System.out.println(e)`。当函数体只有一行时,可以省略大括号和 `...

Global site tag (gtag.js) - Google Analytics