package com.atguigu.Collection; import java.util.*; /** * @author yymstart * @create 2020-08-01 18:22 */ public class Homework { /*创建一个Set集合, 保存10个随机的20以内的整数 再把Set中的所有数保存在另一个List集合中, 对其进行排序 求出这个List中的数的平均值.*/ public static void main(String[] args) { Set set = new HashSet(); while(set.size()!=10){ set.add((int)(Math.random() * 20)); } System.out.println(set); //什么时候用迭代器,什么时候用加强for? //只读的时候,使用迭代器,复杂操作的时候,使用循环 List list = new ArrayList(set);//直接把set中的元素全部添加到当前的list集合中 //list.addAll(set); int[] arr = {3,2,1}; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } //set迭代有2中方式:一种是增强for for (Object tmp :set){ System.out.println(tmp); } //另一种是迭代器 Iterator iterator = set.iterator(); while(iterator.hasNext()){ Object next = iterator.next(); System.out.println(next); } System.out.println(list); /** * 以上两种方式有什么不同呢? * 通过debug发现,增强for就是调用的iterator方法,那么为什么要做增强for出来呢? * 是为了简单,统一数组和集合的操作 */ //排序 for (int i = 0; i < list.size() - 1; i++) { //以位置为主导,以i位置为基准位置,找出包括基准位置到后面所有数中最小数的索引 int minIndex = i; for (int j = i + 1; j < list.size() ; j++) { if ((Integer)list.get(j)<(Integer)list.get(minIndex)){ minIndex = j; } } //让最小值归位 Object tmp = list.get(i); list.set(i,minIndex); list.set(minIndex,tmp); } System.out.println(list); int sum = 0; Iterator iterator1 = list.iterator(); while (iterator1.hasNext()){ Object next = iterator1.next(); sum += (Integer)next; } double avg = (double)sum / list.size(); System.out.println(avg); } public static void main2(String[] args) { Set set = new HashSet(); while(set.size()!=10){ set.add((int)(Math.random() * 20)); } System.out.println(set); //什么时候用迭代器,什么时候用加强for? //只读的时候,使用迭代器,复杂操作的时候,使用循环 List list = new ArrayList(set);//直接把set中的元素全部添加到当前的list集合中 //list.addAll(set); System.out.println(list); //排序 for (int i = 0; i < list.size() - 1; i++) { //以位置为主导,以i位置为基准位置,找出包括基准位置到后面所有数中最小数的索引 int minIndex = i; for (int j = i + 1; j < list.size() ; j++) { if ((Integer)list.get(j)<(Integer)list.get(minIndex)){ minIndex = j; } } //让最小值归位 Object tmp = list.get(i); list.set(i,minIndex); list.set(minIndex,tmp); } System.out.println(list); int sum = 0; Iterator iterator1 = list.iterator(); while (iterator1.hasNext()){ Object next = iterator1.next(); sum += (Integer)next; } double avg = (double)sum / list.size(); System.out.println(avg); } public static void main1(String[] args) { Set set = new HashSet(); while(set.size()!=10){ set.add((int)(Math.random() * 20)); } System.out.println(set); //什么时候用迭代器,什么时候用加强for? //只读的时候,使用迭代器,复杂操作的时候,使用循环 List list = new ArrayList(); Iterator iterator = set.iterator(); while (iterator.hasNext()){ Object next = iterator.next(); list.add(next); } System.out.println(list); //排序 for (int i = 0; i < list.size() - 1; i++) { //以位置为主导,以i位置为基准位置,找出包括基准位置到后面所有数中最小数的索引 int minIndex = i; for (int j = i + 1; j < list.size() ; j++) { if ((Integer)list.get(j)<(Integer)list.get(minIndex)){ minIndex = j; } } //让最小值归位 Object tmp = list.get(i); list.set(i,minIndex); list.set(minIndex,tmp); } System.out.println(list); int sum = 0; Iterator iterator1 = list.iterator(); while (iterator1.hasNext()){ Object next = iterator1.next(); sum += (Integer)next; } double avg = (double)sum / list.size(); System.out.println(avg); } }
集合的练习题:创建一个Set集合, 保存10个随机的20以内的整数 ,再把Set中的所有数保存在另一个List集合中, 对其进行排序,求出这个List中的数的平均值
最新推荐文章于 2023-03-28 09:27:58 发布