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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄坚声 中级黑马   /  2012-5-11 17:11  /  1571 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何把集合转成数组?请举个例子看!

3 个回复

正序浏览
首先要明确为何要把集合变为数组,集合变为数组一般是为了限定对集合元素的操作,常见的就是避免增删操作。如果是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;                                //返回数组
        }


回复 使用道具 举报
本帖最后由 小小企鹅 于 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所有元素的数组
回复 使用道具 举报
        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]);
        }

        }
刚刚做的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马