【Java_SE】作业练习1105

来源:互联网 发布:道路横断面效果图软件 编辑:程序博客网 时间:2024/06/15 13:37

1:集合的嵌套遍历
需求:
  我们班有学生,每一个学生是不是一个对象。所以我们可以使用一个集合表示我们班级的学生。ArrayList
  但是呢,我们旁边是不是还有班级,每个班级是不是也是一个ArrayList。
  而我现在有多个ArrayList。也要用集合存储,怎么办呢?

import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;//测试类public class Demo2 {    public static void main(String[] args) {        //一班学生        Student s1=new Student("张三",15);        Student s2=new Student("李四",17);        Student s3=new Student("王五",16);        //创建一班学生集合,存储学生对象        Collection student1=new ArrayList();        student1.add(s1);        student1.add(s2);        student1.add(s3);        System.out.println("一班的学生有:"+student1);//一班的学生有:[张三-----15, 李四-----17, 王五-----16]        //二班学生        Student s4=new Student("甄姬",15);        Student s5=new Student("貂蝉",17);        Student s6=new Student("王昭君",16);        //创建二班学生集合,存储学生对象        Collection student2=new ArrayList();        student2.add(s4);        student2.add(s5);        student2.add(s6);        System.out.println("二班的学生有:"+student2);//二班的学生有:[甄姬-----15, 貂蝉-----17, 王昭君-----16]        //创建年级集合,存储两个班的集合对象        Collection grade=new ArrayList();        grade.add(student1);        grade.add(student2);        System.out.println("显示全年级学生:"+grade);//[[张三-----15, 李四-----17, 王五-----16], [甄姬-----15, 貂蝉-----17, 王昭君-----16]]        //遍历元素        Iterator it=grade.iterator();        while(it.hasNext()){            ArrayList a=(ArrayList)it.next();            Iterator it2=a.iterator();            while(it2.hasNext()){                System.out.println(it2.next());            }        }    }}//学生类class Student{    private String name;    private int age;    public Student(String name, int age) {        this.name = name;        this.age = age;    }    public Student() {    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    //必须重写toString方法,不然只显示存储地址    @Override    public String toString() {        return this.name+"-----"+this.age;    }}

2:获取10个1-20之间的随机数,要求不能重复

import java.util.ArrayList;import java.util.Collection;import java.util.Random;public class Demo3 {    public static void main(String[] args) {        Random r=new Random();        boolean flag=true;        Collection c=new ArrayList();        while(flag){            int n=r.nextInt(20)+1;            //当集合中不包含产生的随机数时,向其中加入            if(!c.contains(n)){                c.add(n);            }            //如果已经存储够了10个数,则结束            if(c.size()==10){                break;            }        }        System.out.println(c);    }}

3:使用ArrayList集合存储自定义对象并遍历(三种方式去实现)

import java.util.ArrayList;import java.util.Iterator;import java.util.List;//测试类public class Demo4 {    public static void main(String[] args) {        RichMan r1=new RichMan("马云");        RichMan r2=new RichMan("王林");        RichMan r3=new RichMan("潘石屹");        RichMan r4=new RichMan("刘强东");        List c=new ArrayList();        c.add(r1);        c.add(r2);        c.add(r3);        c.add(r4);        //方法一:运用toArray()方法遍历        Object [] o=c.toArray();        for(int i=0;i<o.length;i++){            RichMan richman=(RichMan)o[i];            System.out.print(richman+",");//马云,王林,潘石屹,刘强东,        }        System.out.println("");        //方法二:运用集合的get()方法        for(int i=0;i<c.size();i++){            System.out.print(c.get(i)+",");//马云,王林,潘石屹,刘强东,        }        System.out.println("");        //方法三:运用Iterator的hasNext()方法和next()方法        Iterator it=c.iterator();        while(it.hasNext()){            System.out.print(it.next()+",");//马云,王林,潘石屹,刘强东,        }    }}class RichMan{    private String name;    public RichMan() {        super();        // TODO Auto-generated constructor stub    }    public RichMan(String name) {        super();        this.name = name;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public String toString() {        // TODO Auto-generated method stub        return this.name;    }}
原创粉丝点击