JAVA-day9

一、目的

  • 學(xué)習(xí)集合的相關(guān)知識
  • 掌握Collection接口方法
  • 了解Lambda表達(dá)式的用法
  • 學(xué)會自己創(chuàng)建代碼模板

二、技術(shù)及其使用

(1)Collection接口方法

1.Collection接口的方法
        Collection<String> t1=new ArrayList();
        t1.add("Jack");
        t1.add("Merry");
        System.out.println(t1);
2.刪除一個(gè)對象
        t1.remove("Jack");
        System.out.println(t1);
3.獲取元素個(gè)數(shù)
        System.out.println(t1.size());
4.判斷是否包含一個(gè)元素
        if (t1.contains("Merry")){
            System.out.println("有Merry");
        }else{
            System.out.println("沒有Merry");
        }
5.判斷是否為空
        if (t1.isEmpty()){
            System.out.println("是空的");
        }
6.判斷兩個(gè)集合是否相同
        Collection<String> t2=new ArrayList<>();
        t2.add("Merry");
        t2.add("Jack");
        t2.add("Tom");
        t2.add("Mark");

        if (t1.equals(t2)){
            System.out.println("兩個(gè)集合相同");
        }else{
            System.out.println("兩個(gè)集合不相同");
        }
7.清空
        t1.clear();
        System.out.println(t1);

(2)集合的遍歷

1.使用Iterator來遍歷

hasNext 判斷是否有元素
next 獲取下一個(gè)對象
remove 刪除當(dāng)前遍歷過后的對象

Iterator iterator=t2.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        while (iterator.next()!=null){
            System.out.println(iterator.next());
        }
2.for-each 增強(qiáng)for循環(huán) 快速循環(huán)
        for (String obj:t2){
            System.out.println(obj);
}
3.for i
for (int i = 0; i < t2.size(); i++){ 
  System.out.println(((ArrayList<String>) t2).get(i));
} 

(3)

1.使用方式:定義一個(gè)類實(shí)現(xiàn)接口
        ArrayClass ac=new ArrayClass();
        int[] num={1,2,3,4,5,6};
        YClass pc=new YClass();
        ac.test(num,pc);
2.使用匿名類
        ArrayClass ac=new ArrayClass();
        int[] num={1,2,3,4,5,6};
        ac.test(num, new Show() {
            @Override
            public void customShow(int element) {
            }
        });
3.使用Lambda表達(dá)式

如果參數(shù)是一個(gè)接口類對象,且接口里面只有一個(gè)方法
可以省略方法名

        ArrayClass ac=new ArrayClass();
        int[] num={1,2,3,4,5,6};
        ac.test(num,(int element)->{System.out.println(element
        );} );
4.閉包 enclusure把函數(shù)作為一個(gè)方法的參數(shù)
class ArrayClass{
    public void test(int[] target,Show s){
        for (int element:target){
            s.customShow(element);
        }
    }
}
5.必須是接口 這個(gè)接口里面只有一個(gè)方法
interface Show{
    void customShow(int element);
}
class YClass implements Show {
    @Override
    public void customShow(int element) {

    }
}

三、demo目的及代碼

創(chuàng)建一個(gè)類Person:name age屬性
創(chuàng)建ArrayList對象保存多個(gè)Person對象
1.統(tǒng)計(jì)年齡大于30的人數(shù)
2.統(tǒng)計(jì)名字中有張的人數(shù)


public class Yclass {
    public static void main(String[] args){
        ArrayList<Person> personArrayList=new ArrayList<>();
        Person p1=new Person("關(guān)羽",31);
        Person p2=new Person("劉備",31);
        Person p3=new Person("張學(xué)友",27);
        Person p4=new Person("張遼",18);
        Person p5=new Person("張飛",30);
        personArrayList.add(p1);
        personArrayList.add(p2);
        personArrayList.add(p3);
        personArrayList.add(p4);
        personArrayList.add(p5);

        int ageCount=0;
        int zhangCount=0;
        for (Person p:personArrayList){
            if (p.age>30){
                ageCount++;
            }
            if(p.name.contains("張")){
                zhangCount++;
            }
        }
        System.out.println("大于三十歲的人有"+ageCount+"人 "+"姓張的有"+zhangCount+"人");
    }
}
class Person {
    String name;
    int age;
    public Person(String name,int age){
        this.name=name;
        this.age=age;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 集合 目的 1.清楚java中集合的含義2.明白集合與數(shù)組的區(qū)別3.了解集合中的一些方法 技術(shù) 數(shù)組:存儲多個(gè)對象...
    欲擒故縱_a222閱讀 195評論 1 0
  • Java集合類可用于存儲數(shù)量不等的對象,并可以實(shí)現(xiàn)常用的數(shù)據(jù)結(jié)構(gòu)如棧,隊(duì)列等,Java集合還可以用于保存具有映射關(guān)...
    小徐andorid閱讀 2,081評論 0 13
  • 一、基礎(chǔ)知識:1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,563評論 0 4
  • 四、集合框架 1:String類:字符串(重點(diǎn)) (1)多個(gè)字符組成的一個(gè)序列,叫字符串。生活中很多數(shù)據(jù)的描述都采...
    佘大將軍閱讀 873評論 0 2
  • 今日任務(wù) 1、集合框架繼承體系(理解)2、Collection接口介紹(掌握常用Collection方法)3、迭代...
    Villain丶Cc閱讀 989評論 0 12

友情鏈接更多精彩內(nèi)容