• 什么是集合以及集合框架(Collection接口体系)


    *什么是集合*

    概念:对象的容器,定义了对多个对象进行操作的常用方法,可实现数据存储的功能。

    和数组的区别:

    (1)数组长度固定,集合的长度是不固定的。

    (2)数组可以存储基本数据类型和引用数据类型,集合只能存储引用类型

    位置:java.util.* 这个包下面。

    小开拓:基本数据类型和引用数据类型

    基本数据类型:(8中,小技巧,都是小写字母的)

    ①整数类型:long、int、short、byte
    ②浮点类型:float、double
    ③字符类型:char
    ④布尔类型:boolean

    引用数据类型:(最起码得是大写字母开头的)

    类、 接口类型、 数组类型、 枚举类型、 注解类型、 字符串型

    例如,String类型就是引用类型。

    *Collection接口体系结构*

    练习代码

    package com.practise;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    /**
     * collection接口的使用
     * 1.添加元素
     * 2.删除元素
     * 3.遍历元素
     * 4.判断
     */
    public class Demo01 {
        public static void main(String[] args) {
            //创建集合
            Collection collection = new ArrayList();
    //         * 1.添加元素
            collection.add("apple");
            collection.add("bananer");
            collection.add("Durian");//表示榴莲
            System.out.println("集合大小===="+collection.size());
            System.out.println("集合遍历===="+collection);//默认重写的toString方法
    //       * 2.删除元素
    //        collection.remove("bananer");
    //        System.out.println("集合大小===="+collection.size());
    //        System.out.println("集合遍历===="+collection);
            //2.1清空集合中的元素
    //        collection.clear();
    //        System.out.println("集合大小===="+collection.size());
    //        System.out.println("集合遍历===="+collection);
    //       * 3.遍历元素
            /**
             * //haNext(); 有没有下一个元素
             * //next(); 获取下一个元素
             * //remove(); 删除当前元素
             */
            System.out.println("=========3.1使用增强for==========");
            for (Object o : collection) {
                String col1=(String) o;
                System.out.println(col1);
            }
            //迭代器是专门用来遍历集合的一种方式
            System.out.println("=========3.2使用iterator迭代器==========");
            Iterator iterator = collection.iterator();
            while (iterator.hasNext()){
                String col2 = (String)iterator.next();
                System.out.println(col2);
                //java.util.ConcurrentModificationException 并发修改异常,也就是说,再遍历集合的时候,是不能够删除集合中的元素的。
                //collection.remove(col2);
                //要想在遍历的时候删除集合中的元素可以使用迭代器提供的删除方法进行删除
    //            iterator.remove();
            }
            System.out.println("集合大小===="+collection.size());
            System.out.println("=========3.3使用普通for循环进行遍历==========");
            for (int i = 0; i <collection.size() ; i++) {
                System.out.println(((ArrayList) collection).get(i));
            }
    //       * 4.判断
            System.out.println(collection.contains("apple"));//判断集合中是否存在该元素
            System.out.println(collection.isEmpty());//判断集合是否为空
    
        }
    
    }
    
    

    运行结果:

    集合大小====3
    
    集合遍历====[apple, bananer, Durian]
    
    =========3.1使用增强for==========
    
    apple
    
    bananer
    
    Durian
    
    =========3.2使用iterator迭代器==========
    
    apple
    
    bananer
    
    Durian
    
    集合大小====3
    
    =========3.3使用普通for循环进行遍历==========
    
    apple
    
    bananer
    
    Durian
    
    true
    
    False
    

    练习添加对象

    package com.practise;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    /**
     * 进一步练习
     * collection接口的使用
     * 1.添加元素
     * 2.删除元素
     * 3.遍历元素
     * 4.判断
     */
    public class Demo02 {
        public static void main(String[] args) {
            //创建集合
            Collection collection = new ArrayList();
            Student stu1 = new Student("张三", 18);
            Student stu2 = new Student("李四", 19);
            Student stu3 = new Student("王五", 20);
    //         * 1.添加元素
            collection.add(stu1);
            collection.add(stu2);
            collection.add(stu3);
           // collection.add(stu3);//ArrayList集合可以添加重复的元素
            System.out.println("集合大小===="+collection.size());
            System.out.println("集合遍历===="+collection);//默认重写的toString方法
    
            //2.删除元素
    //        collection.remove(stu1);//这种方法是能删除集合中的元素的
    //        System.out.println("集合大小===="+collection.size());
    //        System.out.println("集合遍历===="+collection);//默认重写的toString方法
    //        collection.remove(new Student("张三", 18));//这种方法是删不掉元素的,注意:我们向集合中添加的元素是添加元素的指针,清除的是集合中该元素的指针,真正的对象是没有删除的,还存在于堆空间
    //        System.out.println("集合大小===="+collection.size());
    //        System.out.println("集合遍历===="+collection);//默认重写的toString方法
            //3.遍历集合 不管使用哪种方法都是可以的
            for (Object o : collection) {
                System.out.println((Student)o);
            }
            //4.判断
            System.out.println(collection.contains(stu1));
            System.out.println(collection.isEmpty());
    
        }
    }
    
    
    运行结果:
    集合大小====3
    集合遍历====[Student{name='张三', age=18}, Student{name='李四', age=19}, Student{name='王五', age=20}]
    Student{name='张三', age=18}
    Student{name='李四', age=19}
    Student{name='王五', age=20}
    true
    false
    
  • 相关阅读:
    浅谈“踹”字典树
    2019.11.9 csp-s 考前模拟
    Luogu P1600[NOIP2016]day1 T2天天爱跑步
    Luogu P1197 [JSOI2008]星球大战
    Trie树(字典树)整理
    洛谷P3294 [SCOI2016]背单词——题解
    浅析差分及其推广(树上差分与广义差分)
    洛谷P1600 天天爱跑步——题解
    深入理解容斥原理
    花式求LCA
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/14348565.html
Copyright © 2020-2023  润新知