A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 韦念欣 黑马帝   /  2012-6-29 07:22  /  11473 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何将int[]直接转换成ArrayList?

假如我的代码中有:
int[] arr = {6,9,4,5,2,0};
如何将arr一次性转换成ArrayList,而不用循环添加?

点评

基本类型数组需要进行转换成包装数组才能通过api进行转换成arraylist,否则基本类型数组会被视为一个Object,即一个集合中的一个元素  发表于 2012-6-29 13:57

6 个回复

倒序浏览
本帖最后由 李天甲 于 2012-6-29 08:06 编辑

若不是基本类型的数组的话可以用util包里面的Arrays.asList()工具
但是下面的转换不行
int[] arr = {6,9,4,5,2,0};
ArrayList   lists   =   new   ArrayList(Arrays.asList(arr));
但是这样做结果List里面只有一个对象,因为int[]被看成是一个obj,会作为元素加进去
所以数组中的基本类型.不会进行自动装箱..
回复 使用道具 举报
ArrayList 后面追加 int 数组的内容,可以用 addAll 方法:
ArrayList<Integer> al = ...;
int[] i = ...;
al.addAll(new Arrays<Integer>(i));
ArrayList 转成数组用 toArray 方法:
ArrayList<Integer> al = ...;
Integer[] integer = (Integer[])al.toArray();
回复 使用道具 举报
史卜坤 发表于 2012-6-29 08:05
ArrayList 后面追加 int 数组的内容,可以用 addAll 方法:
ArrayList al = ...;
int[] i = ...;

int[] i=...;
al.addAll(new Arrays<Integer>(i));
这样写应该是不行滴吧,有这个构造方法么?
回复 使用道具 举报
  1. import java.util.*;

  2. class  AsListDemo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 int[] arr = {6, 9, 4, 5, 2, 0};
  7.                 String[] s = new String[arr.length];//手动将基本数据类型进行装箱动作
  8.                 for(int x=0;x<arr.length;x++)
  9.                 {
  10.                         s[x] = Integer.toString(arr[x]);
  11.                 }
  12.                 //String[] arr = {"abc", "cc", "eqw"};
  13.                 List<String> al = Arrays.asList(s);

  14.                 System.out.println(al);
  15.         
  16.         }
  17. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
刘蕴学 + 1 尽量别用字符串

查看全部评分

回复 使用道具 举报
小张童鞋 发表于 2012-6-29 08:40
  1.                 int[] arr = {6,9,4,5,2,0};
  2.                 ArrayList<Integer> list = new ArrayList<Integer>(arr.length);
  3.                
  4.                 for (int i : arr)
  5.         {
  6.                 list.add(Integer.valueOf(i));
  7.         }
  8.                
  9.                 System.out.println(list);
复制代码
回复 使用道具 举报
刘蕴学 发表于 2012-6-29 13:57

暴强!我也学了一手 :lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马