1. 程式人生 > >Java——集合轉陣列並對其進行遍歷

Java——集合轉陣列並對其進行遍歷

 * A:集合的遍歷
 *      其實就是以此獲取集合中的每一個元素
 * B:案例
 *      把集合轉成陣列,可以實現集合的遍歷
 *      public Object[] toArray() 按適當順序(從第一個到最後一個元素)返回包含此列表中所有元素的陣列。 
package com.wsq.bean;
//建立Student類
public class Student {
    private String name;
    private int age;

    public Student() {
        super();
    }

    public
Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setNaem(String name) { this.name = name; } public int getAge() { return age; } public
void setAge(int age) { this.age = age; } @Override public String toString() { //這裡得重寫toString方法 return "Student [naem=" + name + ", age=" + age + "]"; } }
package com.wsq.collection;

import java.util.ArrayList;
import java.util.Collection;
import com.wsq.bean.Student;
public
class Demo3_Collection { public static void main(String[] args) { demo1(); demo2(); } private static void demo2() { //往集合中儲存自定義物件,自定義物件也就是:我們自己定義一個類,然後建立物件 Collection c = new ArrayList(); c.add(new Student("張三",23)); //object obj = new student("張三",23); 父類引用指向子類物件 c.add(new Student("李四",24)); //向集合裡面新增Studen類物件 c.add(new Student("王五",25)); //集合裡面新增的都是Object類物件 c.add(new Student("趙六",26)); //這裡若如果直接列印c,就相當於呼叫c的toString方法,把結果給顯示一下結果而已 Object [] arr = c.toArray(); //將集合轉換成陣列,全部轉換為Object陣列,呼叫c.toArray()這個方法;返回的物件陣列為Object型別,所以應該用Object陣列去接收 for (int i = 0; i < arr.length; i++) { //對該陣列進行遍歷 //System.out.println(arr[i]); //輸出每一個自定義物件 //列印arr這個陣列,就相當於呼叫toString方法,可以很直接的去顯示屬性值,只是為了顯示一下 //當把Student類物件新增進來的時候,做一個型別提升,提升為Object類,然後集合轉換為陣列也是Object類,現在想要拿到每個Student類裡面的getName和getAge,就需要向下轉型 Student s = (Student)arr[i]; //向下轉型 //因為Object [] arr = c.toArray();這裡的c.toArray()集合是用Object型別的陣列接收的,new Student("張三",23),在新增的時候,Student物件以及提升為Object //多型的弊端:不能使用子類特有的屬性和行為,Object類裡面沒有getName和getAge這樣的方法的,但是我們自定義的Student類裡面有,所以要向下轉型 System.out.println(s.getName() + "..." + s.getAge());//通過getName和getAge來獲取姓名和年齡 //getName和getAge方法是可以把值給獲取過來,可以列印也可以不列印,可以獲取到進行列印,也可以拿到進行賦值,或者進行儲存或者進行別的操作,相對toString來說更靈活 } } public static void demo1(){ //往集合裡儲存字串,然後把集合轉成陣列,可以實現集合的遍歷 Collection c = new ArrayList(); //建立一個集合物件c,父類引用指向子類物件 c.add("a"); //向集合裡面新增元素 c.add("b"); c.add("c"); c.add("d"); Object[] arr = c.toArray(); //將集合轉換成陣列,呼叫c.toArray()這個方法;返回的物件陣列為Object型別,所以應該用Object陣列去接收 for(int i= 0;i<arr.length;i++){ //上一步,已將集合轉化成了陣列,直接for迴圈列印即可 System.out.println(arr[i]); //列印每一個元素 } } }