【Java_SE】作业练习1105

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;iout.print(richman+",");//马云,王林,潘石屹,刘强东,
        }
        System.out.println("");

        //方法二:运用集合的get()方法
        for(int i=0;iout.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;
    }

}

你可能感兴趣的:(作业及练习)