什么是集合以及集合框架(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

posted on   ~码铃薯~  阅读(133)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
历史上的今天:
2020-01-30 Springmvc框架-json对象的处理
2020-01-30 使用Springmvc框架实现多文件上传(二)
2020-01-30 使用springmvc框架实现多文件上传

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示