Java常见集合例题(1、集合的嵌套遍历。2、获取随机数。3三种方式实现对集合中存储对象的遍历)

作业1:集合的嵌套遍历

package org.wests.HomeWork;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

/**
 * 1:集合的嵌套遍历
 * 需求:
 *		我们班有学生,每一个学生是不是一个对象。所以我们可以使用一个集合表示我们班级的学生。ArrayList<Student>
 *	但是呢,我们旁边是不是还有班级,每个班级是不是也是一个ArrayList<Student>。
 *	而我现在有多个ArrayList<Student>。也要用集合存储,怎么办呢?
 * @author 代虎
 *
 */
public class HomeWork01 {
		
		
	
	public static void main(String[] args) {
		List<Student> stuList = new ArrayList<>();
		stuList.add(new Student("Apache", "Java"));
		stuList.add(new Student("Commons", "Java"));
		stuList.add(new Student("Github ", "Java"));

		List<Student> stuList2 = new ArrayList<>();
		stuList2.add(new Student("张艺", "高三20班"));
		stuList2.add(new Student("张玥", "高三20班"));
		stuList2.add(new Student("贺州", "高三20班"));
		

		@SuppressWarnings("rawtypes")
		HashMap<List, String> classMap = new HashMap<>();
		classMap.put(stuList, stuList.get(0).getClassname());
		classMap.put(stuList2, stuList2.get(0).getClassname());
		
		@SuppressWarnings("rawtypes")
		Iterator it = classMap.keySet().iterator();
		while(it.hasNext()) {
			System.out.println(it.next());
		}
	}
}

自定义的学生类:

package org.wests.HomeWork;

public class Student {

	private String name;
	private String Classname;
	
	public Student() {
	}

	
	public Student(String name) {
		super();
		this.name = name;
	}


	public Student(String name, String classname) {
		super();
		this.name = name;
		Classname = classname;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getClassname() {
		return Classname;
	}

	public void setClassname(String classname) {
		Classname = classname;
	}

	@Override
	public String toString() {
		return this.Classname + ":"+ this.name;
	}
	
	
}

执行结果:


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

package org.wests.HomeWork;

import java.util.HashSet;
import java.util.Set;

/**
 * 2:获取10个1-20之间的随机数,要求不能重复
 * @author 代虎
 *
 */
public class HomeWork02 {

	public static void main(String[] args) {
		Set<Integer> set = new HashSet<>();
		for(int i=0;i<1000;i++) {
			int number =(int)(Math.random()*20);
			set.add(number);
			Object[] array = set.toArray();
			if(array.length>10-1) {
				break;
			}
		}
		System.out.println(set);
	}
}

执行结果:


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

package org.wests.HomeWork;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

/**
 * 3、使用ArrayList集合存储自定义对象并遍历(三种方式去实现)
 * 		分析思路: 1、建立自定义的对象Student
 * 				  2、定义一个集合ArrayList
 * 				  3、三种方法:A:普通for循环或者forEach语句
 * 							   B:Iterator/list.listIterator()
 * 								C:转化为数组,遍历
 * 								
 * @author 代虎
 *
 */
public class HomeWork03 {
	/*
	 * A:普通for循环或者forEach语句
	 */
	public static <E> void method01(List<E> list) {
		
//		for(int i=0;i<list.size();i++) {
//			System.out.println(list.get(i));
//		}
		for(E obj:list) {
			System.out.println(obj);
		}
	}
	
	/*
	 *    B:Iterator
	 */
	public static <E> void method02(List<E> list) {
		ListIterator<E> it = list.listIterator();
		System.out.println("List的正向输出");
		while(it.hasNext()){
			System.out.println(it.next());
		}
		System.out.println("List的反向输出");
		while(it.hasPrevious()) {
			System.out.println(it.previous());
		}
	}
	
	public static <E> void method03(List<E> list) {
		Object[] arr = list.toArray();
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}
	}

	public static void main(String[] args) {
		List<Student> list = new ArrayList<>();
		System.out.println("My favorite basketball star:");
		list.add(new Student("尼克杨", "勇士"));
		list.add(new Student("库里", "勇士"));
		list.add(new Student("汤普森", "勇士"));
		list.add(new Student("欧文", "凯尔特人"));
		System.out.println("方法一");
		method01(list);
		System.out.println("方法二");
		method02(list);
		System.out.println("方法三");
		method03(list);
	}
}


执行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Champion-Dai

你的鼓励将是我创作最大的动力,

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值