首页 > 其他分享 >集合框架

集合框架

时间:2025-01-18 22:59:53浏览次数:1  
标签:框架 System println add 集合 public out

学习视频

集合的概述

image

image

public class Demo01 {
    public static void main(String[] args) {
        //简单确认一下Collection集合特点
        ArrayList<String> list = new ArrayList<>();
        list.add("java1");
        list.add("java2");
        list.add("java3");
        list.add("java1");
        System.out.println(list);
        System.out.println(list.get(1));

        HashSet<String> set = new HashSet<>();
        set.add("java1");
        set.add("java2");
        set.add("java3");
        set.add("java2");
        set.add("java3");
        System.out.println(set);
    }
}

image

Collection集合

为什么先学Collection集合呢?

Collection是单列集合的祖宗,它规定的方法(功能)是全部单列集合都会继承的。

常见方法

image

public class Demo02 {
    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>(); //多态写法
        //1.public boolean add(E e):添加元素,添加成功返回true
        c.add("java1");
        c.add("java1");
        c.add("java2");
        c.add("java3");
        System.out.println(c.add("java2"));
        System.out.println(c);
        //2. public int size():获取集合的大小
        System.out.println(c.size());
        //3. public boolean contains(Object obj);判断集合中是否包含某个元素:
        System.out.println(c.contains("java1"));
        System.out.println(c.contains("Java1"));
        //4. public boolean remove(E e);删除某个元素:如果多个重复元素默认删除前面的第一个
        System.out.println(c.remove("java1"));
        System.out.println(c);
        //5. public Object[] toArray();把集合转换成数组
        //用Object[]接可以尽可能接住多种不同类型的元素
        Object[] arr = c.toArray();
        System.out.println(Arrays.toString(arr));
        //也可以指定类型,但是要确保与集合中元素数据类型一致
        String[] arr2 = c.toArray(new String[c.size()]);
        System.out.println(Arrays.toString(arr2));
        //6. public void clear();清空集合的元素
        c.clear();
        System.out.println(c);
        //7. public boolean isEmpty();判断集合是否为空,是空返回true,反转
        System.out.println(c.isEmpty());
        //把一个集合的全部数据倒入到另一个集合中去
        Collection<String> c1 = new ArrayList<>();
        c1.add("aaa1");
        c1.add("aaa2");
        Collection<String> c2 = new ArrayList<>();
        c2.add("bbb1");
        c2.add("bbb2");
        c1.addAll(c2);
        System.out.println(c1);
        //只是拷贝了一份,c2中的数据并没有消失
        System.out.println(c2);
    }
}

遍历方式

迭代器

image

public class Demo03 {
    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>();
        c.add("aaa");
        c.add("bbb");
        c.add("ccc");
        c.add("ddd");
        System.out.println(c);
        //使用迭代器遍历集合
        //1.从集合对象中获取迭代器对象
        Iterator<String> it = c.iterator();
        System.out.println(it.next());
        System.out.println(it.next());
        System.out.println(it.next());
        System.out.println(it.next());
//        System.out.println(it.next());//出现异常

        //2.使用循环结合迭代器遍历集合
        Iterator<String> it1 = c.iterator();
        while (it1.hasNext()) {
            String ele = it1.next();
            System.out.println(ele);
        }
    }
}
/*
输出结果
[aaa, bbb, ccc, ddd]
aaa
bbb
ccc
ddd
aaa
bbb
ccc
ddd*/
增强for循环遍历
public class Demo04 {
    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>();
        c.add("aaa");
        c.add("bbb");
        c.add("ccc");
        c.add("ddd");
        System.out.println(c);
        //使用增强for遍历结合或者数组
        for (String ele : c) {
            System.out.println(ele);
        }
    }
}
/*输出结果
[aaa, bbb, ccc, ddd]
aaa
bbb
ccc
ddd
 */
Lambda表达式

image

public class Demo05 {
    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>();
        c.add("aaa");
        c.add("bbb");
        c.add("ccc");
        c.add("ddd");
        System.out.println(c);
        //default void forEach(Consumer<? super T> action):结合Lambda表达式遍历集合
        //Consumer是个接口,可以用匿名类实现
//        c.forEach(new Consumer<String>() {
//            @Override
//            public void accept(String s) {
//                System.out.println(s);
//            }
//        });
//
//        c.forEach((String s) -> {
//            System.out.println(s);
//        });
//
//        c.forEach(s -> System.out.println(s));

        c.forEach(System.out::println);
    }
}
/*
[aaa, bbb, ccc, ddd]
aaa
bbb
ccc
ddd
 */

集合存储对象的原理

注意:集合存储对象,存的不是对象本身,而是存的对象地址

image

标签:框架,System,println,add,集合,public,out
From: https://www.cnblogs.com/arioya/p/18679004

相关文章

  • 大数据毕业设计:python热门音乐数据分析系统+可视化+Flask框架 MySQL数据库 豆瓣音乐
    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌>......
  • winform使用依赖注入框架Autofac的一些记录
    由于winform的framework框架无法实现core那样的依赖注入,必须借助于依赖注入框架来实现。此次使用Autofac,由于DAL被BLL引用,而BLL又被主程序引用,所以在framework里要实现依赖注入,主程序必须引用DAL和BLL,才可以在主程序里面对DAL和BLL进行注册,这又违背了解耦的原则,所以只能在BLL和主......
  • SpringCloudAlibaba:从0搭建一套快速开发框架-06 告别重复代码,使用Freemarker轻松生成
    序言:上篇主要优化完善公共模块,本篇主要创建一个生成代码的独立模块,提升开发效率,避免繁琐的重复的crud操作。由于内容较多,我就分两节写了。本节我们主要以创建项目并简单的生成数据库实体类即可,下节我们会直接搞完。Freemarker是什么Freemarker是一个基于Java的模板引擎......
  • 集合
    集合与数组的区别相同点:都是容器,且能存放多个数据不同点:1.数组长度固定,集合长度可变;2.数组可以存放基本数据类型或引用数据类型,而集合只能存放引用数据类型,对于基本数据类型需要存放其对应的包装类Collection【接口】Collection集合体系结构常用方法方法名......
  • 计算机毕业设计Springboot线上花店网站系统 基于Spring Boot框架的在线花店平台开发 S
    计算机毕业设计Springboot线上花店网站系统483y662f(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着互联网的飞速发展,电子商务模式深刻改变了人们的购物习惯。在众多商品中,鲜花因其独特的美丽与情感寓意,成为人们表达心意的热门......
  • 计算机毕业设计Springboot新能源产品管理系 基于Springboot的新能源产品全生命周期管
    计算机毕业设计Springboot新能源产品管理系统94pp5688(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着全球能源危机和环境问题的日益严重,各国政府纷纷提出新能源发展战略,以降低对化石能源的依赖,减少温室气体排放,实现可持续发展......
  • Java面试题汇总-集合篇+JUC篇
    其他面试题Java面试题汇总-Java基础篇(共50道题)-CSDN博客Java集合目录1.请你说说java中hashmap的原理2.HashMap的put(key,value)和get(key)过程3.在使用hashmap时,有哪些提升性能的技巧?4.什么是哈希碰撞?怎么解决哈希碰撞?5.谈一谈hashmap的扩容操作?6.hashmap的初始容量......
  • NB!一款基于java开发的漏洞检测工具,集合了泛微、用友、大华、海康、致远、红帆、万户
    1、工具介绍基于https://github.com/yhy0/ExpDemo-JavaFX上添加poc2、工具下载链接:工具下载:工具下载3、新增检测漏洞用友NC-Cloud系统接口getStaffInfo存在SQL注入漏洞用友U8-CloudReleaseRepMngAction存在SQL注入漏洞复现(CNVD-2024-33023)用友U8-CRM系统getDeptName......
  • 计算机毕业设计Springboot少儿陪护系统的研究与实现 基于Springboot框架的少儿陪护平
    计算机毕业设计Springboot少儿陪护系统的研究与实现69vd93i4(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着社会的发展和家庭结构的变化,儿童看护问题日益凸显,传统的看护方式已难以满足现代家庭的需求。科技的进步为解决这一问......
  • 计算机毕业设计Springboot奶茶店销售管理系统设计 基于Springboot的奶茶店销售管理系
    计算机毕业设计Springboot奶茶店销售管理系统设计c1bs36ep(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着现代生活节奏的加快和消费者偏好的持续演变,奶茶店作为流行的饮品消费场所,其市场竞争激烈,同时面临着多样化和个性化的消......