java 16 - 15 集合嵌套存储和遍历元素

  集合的嵌套遍历
  需求:
    自然界有很多动物的种类,猫科,犬科,鸟类这些。
    那就是有很多的ArrayList<Animal>
    而现在,我想要把这些ArrayList<Animal>也用集合存储,怎么办呢?
  那就使用集合的嵌套使用:
    就是这个样子的:ArrayList< ArrayList<Animal> >

动物类:

 1 package cn_JDK5new;
 2
 3 public class Animal {
 4
 5         private String name;
 6         private String color;
 7         private int age;
 8
 9
10
11         public Animal() {
12             super();
13             // TODO Auto-generated constructor stub
14         }
15
16
17
18         public Animal(String name, String color, int age) {
19             super();
20             this.name = name;
21             this.color = color;
22             this.age = age;
23         }
24
25
26         public String getName() {
27             return name;
28         }
29         public void setName(String name) {
30             this.name = name;
31         }
32         public String getColor() {
33             return color;
34         }
35         public void setColor(String color) {
36             this.color = color;
37         }
38         public int getAge() {
39             return age;
40         }
41         public void setAge(int age) {
42             this.age = age;
43         }
44
45
46 }

测试类:

 1 package cn_JDK5new;
 2
 3 import java.util.ArrayList;
 4
 5 import zl_ObjectTest1.Animal;
 6
 7 public class BigAnimalTest {
 8
 9 public static void main(String[] args) {
10 //创建集合1
11 ArrayList<Animal> list1 = new ArrayList<Animal>();
12
13 //猫科
14 Animal a1 = new Animal("短尾猫","白色",1);
15 Animal a2 = new Animal("加菲猫","黄色",3);
16 Animal a3 = new Animal("波斯猫","黑色",2);
17
18 //添加进到集合1
19 list1.add(a1);
20 list1.add(a2);
21 list1.add(a3);
22
23 //创建集合2
24 ArrayList<Animal> list2 = new ArrayList<Animal>();
25
26 //犬科
27 Animal a4 = new Animal("哈士奇","白色",1);
28 Animal a5 = new Animal("萨摩耶","纯白",2);
29 Animal a6 = new Animal("中华田园犬","黑色",2);
30 Animal a7 = new Animal("腊肠犬","黄色",3);
31 Animal a8 = new Animal("泰迪","纯白",2);
32
33 //添加进集合2
34 list2.add(a4);
35 list2.add(a5);
36 list2.add(a6);
37 list2.add(a7);
38 list2.add(a8);
39
40
41 //创建集合3
42 ArrayList<Animal> list3 = new ArrayList<Animal>();
43
44 //鸟类
45 Animal a9 = new Animal("鸽子","白色",1);
46 Animal a10 = new Animal("老鹰","黑色",2);
47
48 //添加进集合3
49 list3.add(a9);
50 list3.add(a10);
51
52
53 //创建总的集合
54 ArrayList<ArrayList<Animal>> bigAnimal = new ArrayList<ArrayList<Animal>>();
55 //把这些集合都放进总集合中
56 bigAnimal.add(list1);
57 bigAnimal.add(list2);
58 bigAnimal.add(list3);
59
60 //进行总集合的遍历
61 for(ArrayList<Animal> aa : bigAnimal){
62
63 for(Animal a : aa){
64
65 System.out.println(a.getName()+"\t"+a.getColor()+"\t"+a.getAge());
66 }
67 }
68 }
69 }
时间: 2024-10-05 05:26:36

java 16 - 15 集合嵌套存储和遍历元素的相关文章

集合嵌套存储和遍历元素的示例

1 /** 2 * @Auther: lzy 3 * @Date: 2018/12/12 16:07 4 * @Description: 集合嵌套存储和遍历元素的示例 5 */ 6 public class ListTest { 7 public static void main(String[] args) { 8 //创建大集合 9 ArrayList<ArrayList<Student>> bigArrayList = new ArrayList<ArrayList&l

使用了泛型的集合 进行存储 、遍历

import java.util.ArrayList; import java.util.Iterator; /* * 使用了泛型的集合 存储 .遍历 */ public class ArrayListGenericTest { public static void main(String[] args) { ArrayList<String> list=new ArrayList<String>(); list.add("hello"); list.add(&

JAVA 16(集合框架工具类)

Collections :工具类,专门对集合进行操作的.所有方法都是静态的,构造方法是私有的,不可以创建对象,通过Collections.xxx();调用工具类中的方法. 1, Collections.sort(); //对集合进行排序,List可以,Set不可以,因为有自动排序的TreeSet,其实是调用对象的Compare方法,如果想要排序自定义对象, sort后面要传入比较器. Collections.sort(list,new Strlen()); 下面有举例说明 2, Collecti

Java数组、集合的三种遍历方式(包懂)

1 for循环 for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]+" "); } 2 foreach循环,这种方式结构简单,可以简化代码 for(int i:arr){ System.out.print(arr[i]+" "); } 3 迭代器遍历 对于数组而言,就没必要转换为集合类的数据类型,代码反而冗杂.前面两种对于数组集合均适用 迭代器对List的遍历 List list = new Arr

java中ArrayList集合的三种遍历方式

public class ListDemo { public static void main(String[] args) { ArrayList<String> mList = new ArrayList<>(); mList.add("郭靖"); mList.add("黄蓉"); mList.add("洪七公"); mList.add("周伯通"); // 第一种遍历方式:普通for循环 for

Java笔记(16):集合框架(02)

1.ArrayList存储字符串并遍历 1 package cn.itcast_01; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 6 /* 7 * List的子类特点: 8 * ArrayList: 9 * 底层数据结构是数组,查询快,增删慢 10 * 线程不安全,效率高 11 * Vector: 12 * 底层数据结构是数组,查询快,增删慢 13 * 线程安全,效率低 14 * LinkedList: 15 *

4.java基础回顾集合3

1.Map集合: java.util.Map<k,v>包中 一个双列集合,一个元素包含两个值(key,value) key和value的数据类型可以相同,也可以不相同 key不允许重复,value允许重复 key和value一一对应 Map常用子类: HashMap:实现Map<k,v>接口,多线程的 JDK1.8之前用数组+单向链表,之后用数组+单向链表/红黑树(数组长度超过8时使用红黑树),提高了查询的速度 无序集合,存储元素和取出元素顺序可能不一致 LinkedHashMap

Java学习:集合双列Map

数据结构 数据结构: 数据结构_栈:先进后出 入口和出口在同一侧 数据结构_队列:先进先出 入口和出口在集合的两侧 数据结构_数组: 查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速的查找某一个元素. 增删慢:数组的长度是固定的,我们想要增加/删除一个元素,必须创建一个新数组,把原数组的数据复制过来 例: int[] arr = new int[]{1,2,3,4}; 要把数组索引是3的元素删除 必须创建一个新的数组,长度是原数组的长度-1 把原数组的其它元素

Java笔记(15):集合框架(01)

1.对象数组的概述和使用 1 package cn.itcast_01; 2 3 public class Student { 4 // 成员变量 5 private String name; 6 private int age; 7 8 // 构造方法 9 public Student() { 10 super(); 11 } 12 13 public Student(String name, int age) { 14 super(); 15 this.name = name; 16 thi