集合嵌套和遍歷元素 package Day16; import java.util.ArrayList; public class LX15 { public static void main(String[] args) { //創建集合1 規定其類型為學生類型 ArrayList<Student ...
集合嵌套和遍历元素
package Day16; import java.util.ArrayList; public class LX15 { public static void main(String[] args) { //创建集合1-----规定其类型为学生类型 ArrayList<Student> A = new ArrayList<Student>(); //向集合1内添加元素 //创建学生对象并添加元素 Student AA = new Student("刘备",30); Student BB = new Student("关羽",29); Student CC = new Student("张飞",28); //将学生类的元素添加到集合1中 A.add(AA); A.add(BB); A.add(CC); //创建集合2--规定其类型为学生类型 ArrayList<Student> B = new ArrayList<Student>(); //向集合2中添加元素 //创建学生对象并添加元素 Student AAA = new Student("唐僧",30); Student BBB = new Student("孙悟空",29); Student CCC = new Student("猪八戒",28); Student DDD = new Student("沙僧",27); //将学生对象的信息添加到集合2中 B.add(AAA); B.add(BBB); B.add(CCC); B.add(DDD); //创建集合3-规定其类型为学生类型 ArrayList<Student> C = new ArrayList<Student>(); //向集合3中添加学生对象元素 //创建学生对象 Student AAAA = new Student("宋江",43); Student BBBB = new Student("武松",42); Student CCCC = new Student("鲁智深",41); Student DDDD = new Student("吴用",40); //向集合3中添加学生类对象 C.add(AAAA); C.add(BBBB); C.add(CCCC); C.add(DDDD); //创建一个D集合---集合中包含着三个集合 //前三个集合的类型为ArrayList<Student>类型 ArrayList<ArrayList<Student>> D = new ArrayList<ArrayList<Student>>(); //向集合D中添加集合A,B,C元素 D.add(A); D.add(B); D.add(C); //对所有集合元素进行遍历 //首先对大集合进行遍历---增强for //for(数据类型 变量 :数组或者集合名) for(ArrayList<Student> x: D){ //此时遍历获取小集合 //对小集合进行增强for的遍历 //确定遍历的数据类型 for(Student y : x){ System.out.println(y.getName()+"---"+y.getAge()); } } } }
获取10个1-20之间的随机数,要求不能重复
1 package Day16; 2 //获取10个1-20之间的随机数,要求不能重复 3 /* 4 * 分析: 5 * A:创建产生随机数的对象 6 * B:创建一个存储随机数的集合。 7 * C:定义一个统计变量。从0开始。 8 * D:判断统计遍历是否小于10 9 * 是:先产生一个随机数,判断该随机数在集合中是否存在。 10 * 如果不存在:就添加,统计变量++。 11 * 如果存在:就不搭理它。 12 * 否:不搭理它 13 * E:遍历集合 14 * */ 15 16 import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer; 17 18 import java.util.ArrayList; 19 import java.util.List; 20 import java.util.Random; 21 22 23 public class Lx16 { 24 public static void main(String[] args) { 25 //首先创建一个随机数生成器对象 26 Random AA = new Random(); 27 // int KK=AA.nextInt(20); 28 // System.out.println(KK); 29 30 //创建一个存储随机数的集合 31 //其中存储的类型应该是int类型--由于集合中不能使用基本类型 32 //所以使用int类型的包装类Integer 33 List<Integer> A = new ArrayList<Integer>(); 34 35 //定义一个统计变量,从0开始 36 int count = 0; 37 //D:判断统计遍历是否小于10 38 // * 是:先产生一个随机数,判断该随机数在集合中是否存在。 39 // * 如果不存在:就添加,统计变量++。 40 // * 如果存在:就不搭理它。 41 // * 否:不搭理它 42 // * E:遍历集合 43 while(count<10){ 44 //public int nextInt(int n)返回一个伪随机数,它是取自此随机数生成器序列的、 45 // 在 0(包括)和指定值(不包括)之间均匀分布的 int 值。 46 //以此获取0-20中的随机数 47 int number = AA.nextInt(20)+1; 48 49 //对获取的数进行判断 50 //判断随机数在集合中是否存在contains判断集合中是否包含指定元素 51 if(!A.contains(number)){ 52 //如果不存在则进行添加 53 A.add(number); 54 //添加一个count就加1---直到count为10结束while循环 55 count++; 56 } 57 58 } 59 //遍历集合 60 //增强for遍历 61 for(Integer X: A){ 62 System.out.println(X); 63 } 64 65 66 } 67 }
键盘录入多个数据,在控制台输出最大值
package Day16; import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; /* * 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值 * * 分析: * A:创建键盘录入数据对象 * B:键盘录入多个数据,我们不知道多少个,所以用集合存储 * C:以0结束,这个简单,只要键盘录入的数据是0,我就不继续录入数据了 * D:把集合转成数组 * E:对数组排序 * F:获取该数组中的最大索引的值 * */ public class Lx17 { public static void main(String[] args) { //创建键盘输入对象 Scanner sc =new Scanner(System.in); //创建一个存储数据的集合 //并规定其类型为int类型的包装类---此处规定的类型为引用类型 //用来接受键盘输入的多个数据 ArrayList<Integer> A = new ArrayList<Integer>(); //对键盘录入的数据进行判断 //其中不知道键盘输入多少次--故采用while循环进行 while(true){ System.out.println("请你输入数据"); //定义键盘输入数据的类型 Integer number = sc.nextInt(); //对键盘输入的数据进行是否为0的判断 if(number !=0){ //如果键盘输入的数据不等于0,则将该数据添加到集合中 A.add(number); }else{ break; } } //循环判断结束---进行集合向数组转变 // 把集合转成数组 // public <T> T[] toArray(T[] a) // 返回值类型是Integer[] 首先创建一个Integer的数组--长度和集合长度一致 Integer[] i = new Integer[A.size()]; //调用集合转数组的方法 //将集合A转化为Integer数组i A.toArray(i); // 对数组排序 // public static void sort(Object[] a) Arrays.sort(i); //获取该处最大索引值 //System.out.println(i[i.length-1]); //对获取数据的形式进行改进 System.out.println("数组"+show(i)+"中最大值是"+i[i.length-1]); //show(i); } //使用拼接字符串功能 public static String show(Integer[] i){ //public StringBuilder()构造一个不带任何字符的字符串生成器, // 其初始容量为 16 个字符。 StringBuilder AA = new StringBuilder(); //向字符串容器添加对象 //public StringBuilder append(String str)将指定的字符串追加到此字符序列。 AA.append("["); for (int x=0;x<i.length;x++){ if(x==i.length-1){ AA.append(i[x]); AA.append("]"); break; }else{ AA.append(i[x]); AA.append(","); } } AA.append("]"); //public String toString()返回此序列中数据的字符串表示形式。 return AA.toString(); } }