Java——集合轉陣列並對其進行遍歷
阿新 • • 發佈:2018-12-31
* 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]); //列印每一個元素
}
}
}