Java基礎知識筆記八(詳細)

對象數組

1,案例
(1)創建一個學生類,屬性有姓名,年齡,分數,行爲有學習和喫飯
(2)創建一個學生類型的數組,在數組中存儲四個學生對象
(3)遍歷數組,打印學生信息

package com.baidu.demo;
public class Student {
    private String name;
    private int age;
    private double score;
    public Student() {
    }
    public Student(String name, int age, double score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }
    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; }
    public double getScore() { return score; }
    public void setScore(double score) { this.score = score; }
    public void study(){ System.out.println("在學習Java..."); }
    public void eat(){ System.out.println("在喫飯飯..."); }
}
package com.baidu.demo;
public class DemoStudent {
    public static void main(String[] args) {
        //創建學生數組
        Student[] students = new Student[4];
        //創建四個學生對象
        Student stu1 = new Student("趙雲",20,85.0);
        Student stu2 = new Student("王麗",20,79.0);
        Student stu3 = new Student("李志",18,88.0);
        Student stu4 = new Student("程晨",21,98.0);
        //將學生對象存儲到學生數組當中
        students[0] = stu1;
        students[1] = stu2;
        students[2] = stu3;
        students[3] = stu4;
        for (int i = 0; i < students.length; i++) {
            Student stu = students[i];
            System.out.println(stu.getName()+"----"+stu.getAge()+"----"+stu.getScore());
            stu.study();
            stu.eat();
        }
    }
}

2,結果展示
在這裏插入圖片描述
3,注意:數組存儲對象有缺點,長度不可改變

集合類

之前學習過數組和StringBuilder這兩類容器。不過 StringBuilder的存儲的結果是一個字符串,滿足不了我們得需求,所以我們只能選擇數組容器,也就產生了對象數組。但是對象數組(一)是不利於維護(二)是不利於需求的變化,因爲數組的長度是固定的不可改變的,所以爲了解決使用對象數組所產生的問題,Java給我們提供了集合類,集合的長度是可變的。

ArrayList類的構造方法

1,構造方法
public ArrayList(){} 初始化一個長度爲10的空列表
注意:ArrayList集合底層是一個Object類型的數據,這個數組的默認長度就是10
2, ArrayList<E>:
(1)長度可改變
(2)底層是數組實現,是一個Object類型的數組
(3)<E>:是一種特殊的數據類型,泛型,也代表未知的類型
(4)如何使用? 你將來期望集合中存儲什麼樣的數據類型,那麼你就指定泛型爲你期望存儲的數據類型
舉例:ArrayList<Student> arrayList = new ArrayList<Student>();
ArrayList<String> arrayList = new ArrayList<String>();
注意點:泛型只能是引用數據類型,不能是基本數據類型

基本數據類型 包裝類
int Integer
short Short
byte Byte
long Long
float Float
double Double
boolean Boolean
char Character

ArrayList類的成員方法

1,成員方法
(1)添加元素
public boolean add(E e) :將元素添加到集合的尾部
public void add(int index, E element):將元素添加到指定索引位置
(2)獲取元素
public E get(int index):根據索引獲取元素
(3)集合長度
public int size():獲取集合長度
(4)刪除元素
public E remove(int index):刪除指定索引位置的元素
public boolean remove(Object o):直接根據參數去集合中進行刪除
(5)修改元素
public E set(int index, E element):修改指定索引位置的元素
(6)其他方法
public void clear():清空集合中的元素
public boolean isEmpty():判斷集合中是否爲空
public boolean contains(Object o):判斷集合中是否包含參數o
public int indexOf(Object o):查找參數o第一次在集合中出現的索引位置
public int lastIndexOf(Object o):查找參數o最後一次在集合中出現的索引位置
public Object[] toArray():將集合轉換爲Object類型的數組
2,使用

package com.baidu.demo;
import java.util.ArrayList;
public class DemoArrayList {
    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        //boolean add(E e)
        boolean flag = arrayList.add("花千骨");
        arrayList.add("花千骨");
        System.out.println(flag);
        System.out.println(arrayList);
        System.out.println("--------------");
        //void add(int index, E element)
        arrayList.add(1,"白子畫");
        System.out.println(arrayList);
        System.out.println("--------------");
        //E get(int index)
        String str = arrayList.get(2);
        System.out.println(str);
        System.out.println("--------------");
        //int size()
        int size = arrayList.size();
        System.out.println(size);
        System.out.println("--------------");
        //E remove(int index)
        String remove1 = arrayList.remove(1);
        System.out.println(remove1);
        System.out.println(arrayList);
        System.out.println("--------------");
        //boolean remove(Object o)
        arrayList.remove("花千骨");
        System.out.println(arrayList);
        System.out.println("--------------");
        //E set(int index, E element)
        String set = arrayList.set(0, "糖寶");
        System.out.println(set);
        System.out.println(arrayList);
        System.out.println("--------------");
        //其他方法
        //clear():
        //arrayList.clear();
        //System.out.println(arrayList);
        //isEmpty()
        boolean empty = arrayList.isEmpty();
        System.out.println(empty);
        //contains()
        boolean contains = arrayList.contains("糖寶");
        System.out.println(contains);
        //indexOf()
        int indexOf = arrayList.indexOf("糖寶");
        System.out.println(indexOf);
        //lastIndexOf()
        int lastIndexOf = arrayList.lastIndexOf("糖寶");
        System.out.println(lastIndexOf);
        //toArray()        Object[] objects = arrayList.toArray();
        for (int i = 0; i < objects.length; i++) {
            System.out.println(objects[i]);
        }
    }
}

ArrayList類案例

1,使用存儲字符串並遍歷輸出

package com.baidu.demo;
import java.util.ArrayList;
public class TestArrayList {
    public static void main(String[] args) {
        //創建集合對象
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("2020");
        arrayList.add("你好呀");
        arrayList.add("開心每一天");
        arrayList.add("嘻嘻哈哈");
        System.out.println(arrayList);
        //遍歷輸出
        System.out.println(arrayList.get(0));
        System.out.println(arrayList.get(1));
        System.out.println(arrayList.get(2));
        System.out.println(arrayList.get(3));
        System.out.println("-------------------");
        for (int i = 0; i < 4; i++) {
            System.out.println(arrayList.get(i));
        }
        System.out.println("-------------------");
        for (int i = 0; i < arrayList.size(); i++) {
            System.out.println(arrayList.get(i));
        }
    }
}

結果展示
在這裏插入圖片描述
2,創建一個集合,存儲學生對象,學生對象的數據來自於鍵盤錄入,
最後,遍歷集合

package com.baidu.demo;
import java.util.ArrayList;
import java.util.Scanner;
public class TestArrayList {
    public static void main(String[] args) {
        //創建集合對象
        ArrayList<Student> arrayList = new ArrayList<>();
        //創建鍵盤錄入對象
        Scanner sc = new Scanner(System.in);
        while(true){
            System.out.println("請你輸入學生姓名:");
            String name = sc.next();
            if("李志".equals(name)){
                System.out.println("hello李志");
                break;
            }
            System.out.println("請你輸入學生年齡:");
            int age = sc.nextInt();
            //創建學生對象
            Student stu = new Student(name,age);
            arrayList.add(stu);
        }
        //遍歷
        for (int i = 0; i < arrayList.size(); i++) {
            Student student = arrayList.get(i);
            System.out.println(student.getName()+"----------"+student.getAge());
        }
    }
}

結果展示
在這裏插入圖片描述

3,給定一個字符串數組如下:{“唐僧”,“孫悟空”,“孫猴子”,“豬悟能”,“沙悟淨”, “孫行者”, “小白龍”,“牛魔王”,“孫大聖”},將數組中的元素添加到集合中,並把所有姓孫的人員打印到控制檯上。

package com.baidu.demo;
import java.util.ArrayList;
public class Test02ArrayList {
    public static void main(String[] args) {
        String[] strings = {"唐僧","孫悟空","孫猴子","豬悟能","沙悟淨", "孫行者", "小白龍","牛魔王","孫大聖"};
        //創建集合對象
        ArrayList<String> arrayList = new ArrayList<>();
        for (int i = 0; i < strings.length; i++) {
            //將數組中的元素添加到集合
            arrayList.add(strings[i]);
        }
        System.out.println(arrayList);
        System.out.println("------------");
        //把所有姓孫的人員打印到控制檯上。
        for (int i = 0; i < arrayList.size(); i++) {
            String str = arrayList.get(i);
            if(str.startsWith("孫")){
                System.out.println(str);
            }
        }
        System.out.println("------------");
        for (int i = 0; i < arrayList.size(); i++) {
            String str = arrayList.get(i);
            if(str.startsWith("孫")){
                arrayList.remove(i);
                i--;
            }
        }
        System.out.println(arrayList);
    }
}

結果展示
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章