黑马程序员技术交流社区

标题: 关于Arrays中asList方法的使用 [打印本页]

作者: 小七的    时间: 2015-3-31 12:04
标题: 关于Arrays中asList方法的使用
谁能帮忙解决下问题,我的代码应该是没有问题的,可为什么总是有红色的波浪线提示arrays中没有aslist方法
代码如下:
  1. import java.awt.List;
  2. import java.util.ArrayList;

  3. public class Arrays {
  4.         public static void main(String[] args) {
  5.                 int[] intArray = new int[]{1, 2, 3, 4};
  6.             ArrayList<Integer> list = new ArrayList<Integer>();
  7.             list.add(1);
  8.             list.add(2);
  9.             list.add(3);
  10.             list.add(4);
  11.             List listFromArray =[color=Red] Arrays.asList(intArray);[/color]
  12.             System.out.println(listFromArray);
  13.             System.out.println(list);
  14.         }
  15. }
复制代码

作者: 林吉前    时间: 2015-3-31 12:12
{:3_49:}我晕了。。。这是在干啥呢。。。
作者: 小七的    时间: 2015-3-31 12:15
林吉前 发表于 2015-3-31 12:12
我晕了。。。这是在干啥呢。。。

额,,忘记说了,就是将数组转为集合,用的是Arrays中的asList方法
作者: zhqw_heima    时间: 2015-3-31 13:59
看不懂~
作者: 花独恋水    时间: 2015-3-31 14:12
导包啊,哥们
作者: 艺多不压身丶    时间: 2015-3-31 14:13
  1. package pack;
  2. import java.util.*;
  3. class demo{
  4.         public static void main(String[] args){
  5.                 List<Integer>al=Arrays.asList(6,8,7,4,5,6);
  6.                 Iterator<Integer>it=al.iterator();
  7.                 while(it.hasNext()){
  8.                         System.out.println(it.next());
  9.                 }
  10.         }
  11. }
复制代码


这样?

作者: 花独恋水    时间: 2015-3-31 14:15
不导包你咋用方法……
作者: 艺多不压身丶    时间: 2015-3-31 14:21
花独恋水 发表于 2015-3-31 14:15
不导包你咋用方法……
亲爱的,

QQ截图20150331141929.png (4.21 KB, 下载次数: 36)

QQ截图20150331141929.png

作者: 林吉前    时间: 2015-3-31 15:08
小七的 发表于 2015-3-31 12:15
额,,忘记说了,就是将数组转为集合,用的是Arrays中的asList方法

{:3_55:}表示没转过。。。
作者: 小七的    时间: 2015-3-31 15:17
艺多不压身丶 发表于 2015-3-31 14:13
这样?

ok~~导错包了~~~
作者: 小七的    时间: 2015-3-31 15:18
花独恋水 发表于 2015-3-31 14:15
不导包你咋用方法……

表示你说的对,,我导错包了~·
作者: 林吉前    时间: 2015-3-31 15:29
为什么要加这个是干啥的?。。。你把int改成Integer   Arrays的asList方法接收的是对象数组,你放int[],Arrays的方法会把int数组放进去,如果是Integer就会把数组的内容放进去,List放的是对象,int[]里存的是基本数据类型,Integer[]里存的是Integer对象,我敲一个你看看,不知道Arrays你的这个类名相同了是不是出错了,java的默认类加载器是双亲委派的机制,应该不是核心包加载错了
作者: 林吉前    时间: 2015-3-31 15:43
  1. package test;

  2. import java.util.*;

  3. public class Arrayss {

  4.         public static void main(String[] args) {
  5.                 Integer[] arr={1,2,3};
  6.                 List list1=new ArrayList();
  7.                 list1= Arrays.asList(arr);
  8.                 System.out.println(list1.toString());        //[1, 2, 3]
  9.                
  10.                 int[] arr2={1,2,3};
  11.                 List list2=new ArrayList();
  12.                 list2=Arrays.asList(arr2);
  13.                 System.out.println(list2.toString());        //[[I@30c028cc]
  14.         }
  15. }
复制代码

作者: 林吉前    时间: 2015-3-31 15:46
林吉前 发表于 2015-3-31 15:43

类名别重复。。。重复了就会在这个类中找asList方法,才一直说这个方法未定义,存了Integer的数组才是对象,asList这个方法才会把对象元素拿过去,int[]这个数组就是一个对象,她的元素是基本数据类型,asList方法是一个可变参数的方法,但都是针对对象public static <T> List<T> asList(T... a)
作者: 李能甫    时间: 2015-3-31 16:08
貌似,你有一个分号放错位置。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2