集合专题(源码警告)

Java集合专题 目录 集合的理解和好处: 数组: 写出Person数组扩容示意代码: 集合 集合的框架体系 Collection接口和常用方法 Collection接口实现类的特点 常用方法 注意: Collection接口遍历元素的方式 1-使用Interator(迭代器) 注意: Collection接口遍历元素的方式 2-for循环增强 练习: List接口和常用方法 List接口基本介绍 List接口的常用方法: 练习1: List的三种遍历方式[ArrayList,Linke. 阅读详情

1、Collection 接口的实现子类的常见方法和两种遍历方式

package Collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class CollectionIterator {
    public static void main(String[] args) {
        Collection list = new ArrayList();
        list.add(new Book("三国","罗",10.2));
        list.add(new Book("西游","好",11.2));
        list.add(new Book("三","王",12.2));
        Iterator iterator = list.iterator();
        while(iterator.hasNext()){//判断集合内是否还有数据
            Object obj = iterator.next();//返回的是Object类型
            System.out.println(obj);
            //快捷键itit。
        }
        //当退出while收iterator,就指向最后的元素,要想重新遍历值的话,就需要重置 我们的迭代器
        System.out.println("重新遍历");
        iterator = list.iterator();//再次指向最前面
        while (iterator.hasNext()) {
            Object next =  iterator.next();
            System.out.println(next);
        }
        //增强for循环。
        for (Object o :list) {
            System.out.println(o);
        }//也可以用在数组上,增强for的底层依然是iterator

    }
}
class Book{
    private String name;
    private String author;
    private double price;

    public Book(String name, String author, double price) {
        this.name = name;
        this.author = author;
        this.price = price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}

2、

package Collection;

import java.util.ArrayList;
import java.util.List;

public class List_ {
    public static void main(String[] args) {
        //list集合类中元素有序(添加顺序和去除顺序一样,而且可以重复)
        List list = new ArrayList();
        list.add("jack");
        list.add("xsm");
        list.add("wgs");
        list.add("tom");
        // void add(int index, Object ele):在 index 位置插入元素
        // boolean addAll(int index, Collection eles):从 index 位置开始将 eles 中的所有元素添加进来

        System.out.println( list.indexOf("tom"));
        System.out.println("list = " + list);
        System.out.println(list.lastIndexOf("tom"));
        //既然顺序都一样了,那么我们就可以知道其有对应的索引的。
        System.out.println(list.get(2));
        list.remove("jack");
        list.set(1,"xgs");//就是将索引为1的位置替换成xgs,要是给一个不存在的index的话就会产生异常。
        // List subList(int fromIndex, int toIndex):返回从 fromIndex 到 toIndex 位置的子集合
        List list1 = list.subList(0, 2);//放回的值是:左闭右开的值
        //list的实现子类很多个,我们只需要知道是ArrayList、linkedList、Vector
        //常见的方法:
    }
}

3、

package Collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Exercise {
    public static void main(String[] args) {
       List list = new ArrayList();
        for (int i = 0; i < 12; i++) {
            list.add("hello" + i);
        }
        System.out.println("list" + list);
        list.add(1,"hsp");
        list.get(4);//获取第五个元素
        list.remove(5);//第六个元素,索引为5.
        list.set(6,"三国");
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object next =  iterator.next();
            System.out.println(next);
        }
        

    }
}

总结:list的实现子类也可以用这些上述遍历方法。


对list中对象的某些值进行排序,向下转型


package Collection;

import Gather.list;

import java.util.ArrayList;

public class E1 {
    public static void main(String[] args) {
        @SuppressWarnings({"all"})
        ArrayList list = new ArrayList();
        list.add(new Book("三国","罗",12.5));
        list.add(new Book("西游","罗",1.5));
        list.add(new Book("水浒","罗",2.5));
        bubble(list);
        for (Object o :list) {
            System.out.println(o);
        }

    }
    public static void bubble(ArrayList list){
        //冒泡排序
        //list.size(),把他单独成一个变量
        //listsize = list.size().
        for (int i = 0;i < list.size() - 1;i++){
            for(int j = 0;j < list.size() - 1 - i;j++){
                Book book1 = (Book)list.get(j);
                Book book2 = (Book)list.get(j + 1);
                if (book1.getPrice() > book2.getPrice()){
                    list.set(j,book2);
                    //集合的交换是set
                    list.set(j + 1,book1);
                }
            }
        }
    }
}
class Book{
    private String name;
    private String author;
    private double price;

    public Book(String name, String author, double price) {
        this.name = name;
        this.author = author;
        this.price = price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}

注意事项:

  • ArrayList是可以放null的。还可以放多个null。
  • 底层是用数组实现的。
  • ArrayList是线程不安全的(没有synchronized),所以说他的效率比较高。
  • 在多线程的情况下,不适用。

 Arrays.copyOf(arr,length);我把他看成是拉长的操作。//保护原来的数据。

Java忽略警告注解@SuppressWarnings // 忽略全部类型的警告 @SuppressWarnings("all")    // 忽略未检查的转化,例如集合没有指定类型的警告 @SuppressWarnings("unchecked")   // 忽略未使用的变量的警告 @SuppressWarnings("unused")  // 忽略与使用Closeable类型资源相关的警告 @SuppressWarnings("resource")   // 忽略在类路径,原文件路径中有不存在的路径的警告 @SuppressWarning... 阅读详情

相关推荐

Java入门-集合

集合 1.含义 ​ 集合是存放多个类型的数据 2.概念 ​ (1)集合是Java API所提供的一系列类,可以用于动态存放多个对象,集合只能存对象; ​ (2)集合与数组的不同在于集合是大小可变的序列,而且元素类型可以不受限制,只要是引用类型。(集合中不能存放基本数据类型,但可以存放基本数据类型的包装类); ​ (3)集合全部支持泛型,是一种数据安全的用法。 3.集合 VS 数组 ​ 数组:一旦初始化,长度不可改变,只能存放声明数组时指定的类型,可以存放基本数据类型。 ​ 集合:大小可变的序列,元素类型

刘树之的博客 3211

SkyWalking告警使用

SkyWalking告警 SkyWalking提供了强大的监控告警功能,在监控到应用出现问题的时候,会调用webhook或者gRPC hook或者Wechat DingDing等工具报告警告信息 而且SkyWalking已经提供了许多已经写好的监控告警规则参考config目录下的oal 所有的.oal文件中的每一行对应一个metrics name 对应一种监控规则 SkyWalking使用特殊的语法进行监控度量指标的绑定 如 service_resp_time = from(Service.latency

woshiwjma956的博客 899

spring源码系列(一)——spring循环引用

spring循环依赖如何解的?

java_lyvee的专栏 7万+

Java 集合框架大师课:集合框架源码解剖室(五)

💣 警告:本章包含大量,建议搭配咖啡因饮料阅读!☕️。

无限大的博客 981

C# Windows UI开发实战源码集合

确认data() {return {},methods: {},close() {/* 样式定义 */

weixin_42611177的博客 777

保姆级教程:用Zemax 18.9复现单模光纤耦合仿真(附康宁SMF-28e参数)

本文提供了一份详细的Zemax 18.9单模光纤耦合仿真教程,以康宁SMF-28e为例,涵盖从软件设置、材料参数输入到系统构建和优化的全流程。通过光束耦合分析和物理光学传播(POP)技术,帮助用户准确模拟光纤耦合效率,并解决常见问题,适用于光学设计初学者和专业人士。

weixin_27330481的博客 313

GCC/Clang编译警告屏蔽全攻略:从命令行到Makefile的实战技巧

本文全面解析GCC/Clang编译器警告屏蔽技巧,从命令行参数到Makefile配置,提供嵌入式开发中的实战解决方案。重点介绍如何精准控制-Wint-to-pointer-cast等硬件相关警告,通过#pragma指令和分层编译策略,在保证代码质量的前提下提高开发效率。

github5actions的博客 932

Win10网络图标消失,网络图标变成灰色,打开网络设置闪退等问题解决

介绍 主要解决如下问题 网络图标消失 常用方法配置中出现的网络图标变成灰色没有办法打开 打开网络和Internet闪退 错误提示`网络发现已关闭。网络计算机和设备不可见。请启动网络和共享中心的网络发现。 连不上网,诊断结果为 依赖服务或组无法启动 这个问题大概率通过重装系统不能解决,请大家谨慎测试之后最后选择重装这个路线。 方法1:这一步一定要做(卸载三方软件) 把360安全卫士,软件管家这些东西都卸载掉。 我的问题一开始就是这个软件引起的,可能他检测到我还给台式机配了无线网卡,然后就把有线网络的一些

呆呆象呆呆的博客 3万+

源码|从源码分析非线程安全集合类的不安全迭代器

上面看到了非线程安全集合类的迭代器是不安全的,但在单线程的环境下,这些集合类在性能、维护难度等方面仍然具有不可替代的优势。那么该如何在兼具一定程度线程安全的前提下,更好的发挥內建集合类的优势呢?使用非线程安全的集合时(实际上对于某些“线程安全”的集合类,其迭代器也是线程不安全的),迭代过程中需要用户自觉维护,不修改该集合。应尽可能明确线程安全的需求等级,做好一致性、活跃性、性能等方面的平衡,再针对性的使用相应的集合类。

攻城狮不是猫 812

使用QGIS配准无人机航片

随着无人机在各个行业的普及,无人机航片成为很多应用系统空间数据的重要来源。无人机航片具有成像快、分辨率高、针对性强的优点,广泛用于保险定损、灾情应急监测、设施巡检、农作物面积调查等方面。 然而,由于种种原因,通过无人机拍摄的照片拼接得到的正射航片与其他地理空间数据叠加时经常出现较明显的偏差,需要进行配准以校正其空间位置,因此,本文将使用QGIS的配准工具演示无人机正射航片配准的过程。 01数据情况 本文选用的示范数据为2020年7月中左右无人机拍摄的河北省某地系列照片,经过拼接得到CG...

QGISClass的博客 5249

UG\NX二次开发 分割曲线

分割曲线没有ufun函数?那就换一种思路实现。

王牌飞行员_里海的博客 1145

SLF4J集成多个日志实现出现警告信心分析

SLF4J集成多个日志实现出现警告信心分析

Leon_Jinhai_Sun的博客 192

python基础:工作会用到的90%的python代码都在这了(万字详解!)

Python 备忘单是 Python 3 编程语言的单页参考表 著名的“Hello World”程序在 Python 中的实现 Python 不能在没有赋值的情况下声明变量 变量可以存放不同类型的值 内置数据类型 序列指一批有序的元素,集合指一批无序且不重复的元素查看: 数据类型 查看: 字符串 查看: 列表 查看: 判断 查看: 循环 查看: 函数 查看: 文件处理 表示 x 和 y 的商, 表示 x 和 y 的底商,另见 StackOverflow f-字符串 (Python 3.6+) 查看

数据知道的博客 1万+

Java---集合

本文介绍了Java集合框架的核心概念和使用方法。主要内容包括:1)集合的基本概念和分类(单列集合Collection和双列集合Map);2)Collection接口的常用方法(add、remove、contains等)和两种遍历方式(迭代器和增强for循环);3)List接口特点(有序、可重复)及其实现类ArrayList、LinkedList和Vector的对比;4)Set接口特点(无序、不可重复)及其实现类HashSet和LinkedHashSet;5)底层数据结构分析,包括数组、链表和红黑树的应用场景

2301_80275859的博客 578

用MATLAB计算卡方值

然后,我们计算了期望频数,即在两个分类变量独立的情况下,每个单元格的预期频数。接下来,我们使用卡方检验的公式计算了卡方值。卡方检验是一种常用的统计方法,用于确定两个分类变量之间是否存在相关性。它基于观察到的频数和期望频数之间的差异来评估分类变量之间的独立性。在MATLAB中,我们可以使用。请注意,这只是一个简单的示例代码,用于说明如何使用MATLAB计算卡方值。在实际应用中,您可能需要根据您的具体数据和研究问题进行相应的修改和调整。在上面的代码中,我们首先创建了两个分类变量。函数显示了计算得到的卡方值。

CodeNexus的博客 2658

【OpenClaw从入门到精通】第09篇:企业级实践——将OpenClaw接入钉钉,打造7×24小时数字员工(2026实测版)

本文聚焦OpenClaw的企业级落地实践,以“招聘数字专员”为核心场景,完整演示从钉钉接入到全流程自动化的实现路径。内容涵盖企业级部署架构设计、前置环境搭建、核心技能开发、流程串联、安全权限管控及运维监控六大模块,详解简历解析、岗位匹配、外呼集成、CRM同步、日历提醒等关键技能的构建逻辑与代码实现。借鉴中关村科金、网易智企的企业级实践经验,重点突破企业知识融合、安全权限管控、业务系统连接三大核心门槛,提供可直接参考的配置示例与操作步骤。所有技术方案均基于公开文档与实测验证,兼顾新手入门与进阶实操。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1170

本地编译Spring源码

gradle版本是:gradle-7.5.1(通过spring源码下的gradle—wrapper—gradle-wrapper.properties。修改文件gradle—wrapper—gradle-wrapper.properties,指向本地的gradle。为了在spring源码编译过程中避免各种问题,所使用的jdk版本和gradle版本应该与spring 官网上。在cmd中执行根目录下的gradle.bat。文件中查看使用的gradle版本)2、使用本地的gradle。这里使用的jdk是17。

liang8999的博客 828

SQL注入详解

SQL注入(SQL Injection)是一种常见的Web安全漏洞,主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱库、被删除、甚至整个服务器权限陷)。 即:注入产生的原因是后台服务器接收相关参数未经过滤直接带入数据库查询...

渗透之路,攻防之间皆学问 26万+

基础_Java集合Collection

文章目录Collection集合集合转数组:集合遍历之迭代器遍历 迭代就是遍历迭代器原理 源码分析List集合特有方法List三个子类特点List集合泛型SettreeSet原理MAPHashMap 和 Hashtable的区别集合总结ArrayListLinkedListVectorSet(存储无序,无索引,不可以重复)Map Collection集合 collection c = new ArrayList(); //父类引用指向子类对象. add方法 如果是List集

卑微程序猿的野心和梦想 466

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

JavaScript 消息框实例集合

"你好,我是一个警告框!"你按下了'确定'按钮!"你按下了'取消'按钮!

梁辰兴的博客 125

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java集合之ArrayList源码分析

一、ArrayList简介 ArrayList是可以动态增长和缩减的索引序列,它是基于数组实现的List类。 该类封装了一个动态再分配的Object[]数组,每一个类对象都有一个capacity属性,表示它们所封装的Object[]数组的长度,当向ArrayList中添加元素时,该属性值会自动增加。如果想ArrayList中添加大量元素,可使用ensureCapacity方法一次性增加capacity,可以减少增加重分配的次数提高性能。 ArrayList的用法和Vector向类似,但是Vector

花&败 318

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java集合(一)ArrayList源码分析

我是看一篇博客,并且在它的基础上面增加内容的。 地址为https://www.cnblogs.com/xujian2014/p/4625346.html 看源码之前要先了解一些知识 @SuppressWarnings("unchecked") 告诉编译器忽略 unchecked 警告信息 System.arrayCopy的源代码声明 : public static void arra...

小炫指剑大厂 1635

JDK集合源码之HashMap解析(上)

声明:转载请附带原文链接! 1.HashMap继承体系 从继承体系可以看出: HashMap 实现了Cloneable接口,可以被克隆。 HashMap 实现了Serializable接口,可以序列化。 HashMap 继承了AbstractMap,实现了Map接口,具有Map的所有功能。 存储结构 在Java中,HashMap的实现采用了(数组 + 链表 + 红黑树)的复杂结构,数组的一个元素又称作桶。 在添加元素时,会根据hash值算出元素在数组中的位置,如果该位置没有元素,则直接把元素放置.

兴趣使然的草帽路飞 1万+

JavaScript Window 对象实例集合

注:了解JavaScript Window 对象请参考《JavaScript Window》。 运行效果 弹出一个带折行的警告框 源码 运行效果 弹出一个确认框,并提醒访客点击的内容 源码 运行效果 弹出一个提示框 源码 运行效果 点击一个按钮时,打开一个新窗口 源码 运行效果 打开一个新窗口,并控制其外观 源码 运行效果 打开多个新窗口 源码 运行效果 确保新的窗口没有获得焦点 源码 运行效果 运行

梁辰兴的博客 339

死磕源码系列【ConfigurationWarningsApplicationContextInitializer源码解析】

ConfigurationWarningsApplicationContextInitializer是ApplicationContextInitializer初始化器接口的实现类,用作报告常见错误配置的警告(通过分析源码实际情况是如果系统配置包扫描(@ComponentScan)到了org或者org.springframework包就会发出警告并停止系统启动) ConfigurationWarningsApplicationContextInitializer初始化器源码: public class .

OceanSky的专栏 999
上一篇: 内部类、HashSet
下一篇: 练习111
atitude
博客等级 码龄7年 10粉丝 197原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值