JAVA-day9

一、目的

  • 学习集合的相关知识
  • 掌握Collection接口方法
  • 了解Lambda表达式的用法
  • 学会自己创建代码模板

二、技术及其使用

(1)Collection接口方法

1.Collection接口的方法
        Collection<String> t1=new ArrayList();
        t1.add("Jack");
        t1.add("Merry");
        System.out.println(t1);
2.删除一个对象
        t1.remove("Jack");
        System.out.println(t1);
3.获取元素个数
        System.out.println(t1.size());
4.判断是否包含一个元素
        if (t1.contains("Merry")){
            System.out.println("有Merry");
        }else{
            System.out.println("没有Merry");
        }
5.判断是否为空
        if (t1.isEmpty()){
            System.out.println("是空的");
        }
6.判断两个集合是否相同
        Collection<String> t2=new ArrayList<>();
        t2.add("Merry");
        t2.add("Jack");
        t2.add("Tom");
        t2.add("Mark");

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

(2)集合的遍历

1.使用Iterator来遍历

hasNext 判断是否有元素
next 获取下一个对象
remove 删除当前遍历过后的对象

Iterator iterator=t2.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        while (iterator.next()!=null){
            System.out.println(iterator.next());
        }
2.for-each 增强for循环 快速循环
        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.使用方式:定义一个类实现接口
        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表达式

如果参数是一个接口类对象,且接口里面只有一个方法
可以省略方法名

        ArrayClass ac=new ArrayClass();
        int[] num={1,2,3,4,5,6};
        ac.test(num,(int element)->{System.out.println(element
        );} );
4.闭包 enclusure把函数作为一个方法的参数
class ArrayClass{
    public void test(int[] target,Show s){
        for (int element:target){
            s.customShow(element);
        }
    }
}
5.必须是接口 这个接口里面只有一个方法
interface Show{
    void customShow(int element);
}
class YClass implements Show {
    @Override
    public void customShow(int element) {

    }
}

三、demo目的及代码

创建一个类Person:name age属性
创建ArrayList对象保存多个Person对象
1.统计年龄大于30的人数
2.统计名字中有张的人数


public class Yclass {
    public static void main(String[] args){
        ArrayList<Person> personArrayList=new ArrayList<>();
        Person p1=new Person("关羽",31);
        Person p2=new Person("刘备",31);
        Person p3=new Person("张学友",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;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 集合 目的 1.清楚java中集合的含义2.明白集合与数组的区别3.了解集合中的一些方法 技术 数组:存储多个对象...
    欲擒故纵_a222阅读 197评论 1 0
  • Java集合类可用于存储数量不等的对象,并可以实现常用的数据结构如栈,队列等,Java集合还可以用于保存具有映射关...
    小徐andorid阅读 2,113评论 0 13
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,617评论 0 4
  • 四、集合框架 1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。生活中很多数据的描述都采...
    佘大将军阅读 889评论 0 2
  • 今日任务 1、集合框架继承体系(理解)2、Collection接口介绍(掌握常用Collection方法)3、迭代...
    Villain丶Cc阅读 1,001评论 0 12

友情链接更多精彩内容