黑马程序员技术交流社区

标题: 如何把集合转成数组?请举个例子看! [打印本页]

作者: 黄坚声    时间: 2012-5-11 17:11
标题: 如何把集合转成数组?请举个例子看!
如何把集合转成数组?请举个例子看!
作者: 李啸    时间: 2012-5-11 17:24
        public static void main(String[] args) throws IOException {
                List<String> list=new ArrayList<String>();
                list.add("a");
                list.add("b");
                list.add("c");
                list.add("d");
       Iterator<String> iter=list.iterator();
       String[] str=new String[list.size()];
       int count=str.length-1;
       while(iter.hasNext()){
               str[count--]=iter.next();
       }
       for (int i = 0; i < str.length; i++) {
                System.out.println(str[i]);
        }

        }
刚刚做的
作者: 小小企鹅    时间: 2012-5-11 17:56
本帖最后由 小小企鹅 于 2012-10-27 22:36 编辑

调用ArrayList的toArray方法
        ArrayList<Student>students = new ArrayList<Student>();
        students.add( new Student("学生一",24,79f) );
        students.add( new Student("学生二",23,89.5f) );
        students.add( new Student("学生三",27,96f) );
        Object[] studentObj = new Object[5];
        studentObj = students.toArray(); //返回包含students所有元素的数组

作者: 杨鹏    时间: 2012-5-11 17:56
首先要明确为何要把集合变为数组,集合变为数组一般是为了限定对集合元素的操作,常见的就是避免增删操作。如果是List集合的话,可以用其提供的toArray()方法。也可以自己写功能。
思路:
(1)将集合传入函数中,创建一个长度为集合元素个数(集合的size()方法)的数组。
(2)遍历集合,然后把集合元素逐个添加到数组中。
(3)遍历结束后把数据返回即可。
假设是List集合,代码如下:
        public static Object[] listToArray(List<Object> list) {
                Object[] obj = new Object[list.size()];              //创建数组               
               
                for (int i=0; i<list.size(); i++) {                   //遍历集合
                        obj[i] = list.get(i);                       //向数组添加元素
                }
                return obj;                                //返回数组
        }







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