zoukankan      html  css  js  c++  java
  • java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)

    集合:集合是Java提供的一种容器,可以用来存储多个数据;

    集合与数组的区别:集合的长度是可变的,数组的长度是固定的

             集合中存储的数据必须是引用类型数据;

    ArrayList回顾:

    public class Person {
        private String name;
        private int age;
        
        public Person() {
            super();
        }
        public Person(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
        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 "Person [name=" + name + ", age=" + age + "]";
        }
        
    }
    import java.util.ArrayList;
    
    public class Demo1 {
        public static void main(String[] args) {
            ArrayList<Integer> arr=new ArrayList<>();
            arr.add(1);
            arr.add(2);
            arr.add(3);
            arr.add(4);
            arr.add(5);
            for (int i = 0; i < arr.size(); i++) {
                System.out.println(arr.get(i));//1  2   3   4   5
            }
            ArrayList<Person> arr1=new ArrayList<>();
            arr1.add(new Person("张三", 18));
            arr1.add(new Person("李四", 18));
            arr1.add(new Person("王二", 18));
            for (int i = 0; i < arr1.size(); i++) {
                System.out.println(arr1.get(i));
            }
            /*
            Person [name=张三, age=18]
            Person [name=李四, age=18]
            Person [name=王二, age=18]*/
            System.out.println(arr1.size());//3
            arr1.clear();//清空集合
            System.out.println(arr1.size());//0
        }
    }

    collection接口是集合的根接口,研究它应该通过他的实现类

    ArrayList集合实现了List接口,List接口继承了Collection接口,因此可以 通过ArrayList研究Collection的部分方法:

    import java.util.ArrayList;
    import java.util.Collection;
    
    public class Demo3 {
        public static void main(String[] args) {
            fun1();
            fun2();
            fun3();
        }
    
        private static void fun3() {
            // 删除元素
            Collection<String> c=new ArrayList<>();
            c.add("abc");
            c.add("def");
            c.add("ghi");
            boolean b=c.remove("abc");
            System.out.println(b);//true,看是否删除成功,如果元素不存在,则删除失败,如果有重复元素,则删除第一个
            System.out.println(c);//[def, ghi]
        }
    
        private static void fun2() {
            // 得到一个存储对象的数组
            Collection<String> c=new ArrayList<>();
            c.add("abc");
            c.add("defg");
            c.add("123");
            Object[] obj=c.toArray();
            for (int i = 0; i < obj.length; i++) {
                System.out.println(obj[i]);
            /*    abc
                defg
                123*/
            }
            
        }
    
        private static void fun1() {
            //利用多态创建Collection类型变量
            Collection<String> c=new ArrayList<>();
            c.add("abc");//add()方法添加元素
            c.add("efg");
            boolean b=c.contains("abc");//contains方法,判断集合是否包含某元素,返回布尔类型
            System.out.println(b);//true
            System.out.println(c.size());//2//size()方法:集合的大小,存入元素个数
            c.clear();//清空集合中元素,集合本身仍然存在,就像抽屉里的东西拿走了,抽屉仍然存在
            System.out.println(c.size());//0
        }
    }

    迭代器:java有很多的集合,存的方式是不一样的,我们要取出这些元素,可以通过一种通用的方式获得;

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    public class Demo4 {
        public static void main(String[] args) {
            Collection c=new ArrayList<>();
            c.add("abc");
            c.add("jfhjkb");
            c.add(new Person("张三",18));
            //迭代器
            Iterator it=c.iterator();
            while (it.hasNext()) {
                Object  obj = (Object) it.next();
                System.out.println(obj);
            }
            
        }
    }

    增强性for循环:

    格式:for(数据类型 变量名:数组或者集合){syso(变量名)}

    还以上一个例子为例:

    public class Demo4 {
        public static void main(String[] args) {
            Collection c=new ArrayList<>();
            c.add("abc");
            c.add("jfhjkb");
            c.add(new Person("张三",18));
            //增强性for循环
            for (Object object : c) {
                System.out.println(c);
            }
    /*[abc, jfhjkb, Person [name=张三, age=18]]
    [abc, jfhjkb, Person [name=张三, age=18]]
    [abc, jfhjkb, Person [name=张三, age=18]]*/    
        }
    }
  • 相关阅读:
    词法分析程序
    关于编译原理
    超神c语言文法
    linux基本命令
    用bat来注册ocx
    当web配置文件 appSettings配置的东西越来越多时,可以拆开了。
    MVC的URL路由规则
    ASP.NET MVC 中如何实现基于角色的权限控制
    查cc攻击
    关于session介绍
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/10567432.html
Copyright © 2011-2022 走看看