1. 程式人生 > >關於java物件陣列(全)

關於java物件陣列(全)

文章目錄

1 簡單物件陣列的構造與使用

1.1 Practice類

//Practice.java
package Object;
/**
  把5個學生的資訊儲存到陣列中,並遍歷陣列,獲取得到每一個學生資訊。
  *         學生:Student
  *         成員變數:name,age
  *         構造方法:無參,帶參
  *         成員方法:getXxx()/setXxx()
  * 分析:
  *         A:建立學生類。
  *         B:建立學生陣列(物件陣列)。
  *         C:建立5個學生物件,並賦值。
  *         D:把C步驟的元素,放到陣列中。
  *         E:遍歷學生陣列。
  **/
public class Practice { public static void main(String[] args){ //建立學生陣列(物件陣列) Student[] students = new Student[5]; // // // // // //建立5個學生物件,並賦值 Student s1 = new Student("小明", 27); Student s2 = new Student("小紅", 30); Student s3 =
new Student("小強", 30); Student s4 = new Student("旺財", 12); Student s5 = new Student("張三", 35); //將物件放入陣列中 students[0] = s1; students[1] = s2; students[2] = s3; students[3] = s4; students[4] = s5; //遍歷 for (int x = 0;x < students.length;x++){ // Student s = students[x]; System.out.println(s.getName() + "---" + s.getAge()); } } }

1.2 Student.java

//Student.java
package Object;

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;
    }

    //成員方法
    //getXxx()/setXxx()
    public String getName(){
        return name;
    }

    public void setName(String name){
        this.name = name;
    }

    public int getAge(){
        return age;
    }
    public void setAge(int age){
        this.age = age;
    }

    @Override
    public String toString(){
        return "Student [name=" + name + ",age=" + age + "]";
    }
}


1.3 關於簡單物件陣列的記憶體圖解

在這裡插入圖片描述

2 高階物件陣列::集合簡介

2.1 集合的由來及陣列的區別

  1. 由來:面嚮物件語言都是以物件的形式, 為方便對多個物件的操作,java提供了集合類
  2. 區別:
  • 陣列可以儲存同一型別的基本資料也可以儲存.同一型別的物件,但長度是固定的
  • 集合可以儲存不同型別的物件,集合長度可變,可以儲存不同型別的物件

2.2 框架的頂層Collection介面

在這裡插入圖片描述

2.3 Collection集合的功能概述

  • Collection是層次結構中的根介面。
  • Collection 表示一組物件,這些物件也稱為 collection 的元素。
  • 一些 collection 允許有重複的元素,而另一些則不允許。
  • 一些 collection 是有序的,而另一些則是無序的。
  • JDK 不提供此介面的任何直接實現:它提供更具體的子介面(如 Set 和 List)實現。
  • 此介面通常用來傳遞 collection,並在需要最大普遍性的地方操作這些 collection。

2.4 Collection集合的基本功能測試

2.4.1 成員方法介紹

//確保此Collection包含指定的元素(可選操作)
boolean add(E e)

//從此lollection中移除指定元素的單個例項,如果存在的話(可選操作)
boolean remove(Object o)

//移除此collection中的所有元素(可選操作)
void clear() 

//如果此collection包含指定的元素,則返回true
boolean contains(Object o)

//如果此collection不包含元素,則返回true
boolean isEmpty()

//返回此collection中的元素數
int size()

2.4.2 基本功能測試

//
package Collection_1;

import javax.swing.*;
import java.util.ArrayList;
import java.util.Collection;

public class test_collection {
    public static void main(String[] args){
        // 建立集合物件
        //Collection c = new Collection();
        //錯誤,因為介面不可以例項化
        Collection c = new ArrayList();
        c.add("hello");
        c.add("world");
        c.add("java");

        //c.clear();
        //移除所有元素
        System.out.println("remove:" + c.remove("hello"));
        System.out.println("remove:" + c.remove("javaee"));

        //判斷集合中是否包含指定的元素
        System.out.println("contains:" + c.contains("hello"));
        System.out.println("contains:" + c.contains("android"));
        //判斷集合是否為空
        System.out.println("isEmpty:" + c.isEmpty());
        //元素的個數
        System.out.println("size:" + c.size());
        System.out.println("c:" + c);
        
    }
}


2.5 Collection集合的高階功能測試

2.5.1 成員方法介紹

//將指定 collection 中的所有元素都新增到此 collection 中(可選操作)。
boolean addAll(Collection<? extends E>c):

//移除此 collection 中那些也**包含在指定 collection 中的所有元素**(可選操作)。
boolean removeAll(Collection<?> c):

//如果此 collection 包含指定 collection 中的所有元素,則返回 true。
boolean containsAll(Collestion<?> c):

//僅保留此 collection 中那些也包含在指定 collection 的元素(可選操作)。換句話說,移除此 collection 中未包含在指定 collection 中的所有元素。
boolean retainAll(Collection<?> c):

2.5.2 基本功能測試

c1.addAll(c2);//將c2集合中的所有元素新增到c1集合中,c1變c2不變

c1.removeAll(c2);//將c1集合中與c2集合相同的所有元素刪除,只要有一個相同的就返回true

c1.containsAll(c2);//判斷c1集合中的元素是否包含c2中的全部元素,全部包含則返回true

c1.retainAll(c2);//將c1集合中與c2集合相同的元素保留,刪除其他元素,返回值表示c1集合是否發生變化,發生變化返回true,沒有變化返回false

還有一些沒補充完整,先這樣,夠寫專案了,待補充