【JAVA】集合规范的制定概述

【Java实战】工作中规范使用Java集合_泛型通配符< extends t>来接收返回的数据,此写法的泛型集合不能使用 add 方法(2) 现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:五花八门的错误码会人为地增加排查问题的难度;数据库的表结构和索引设计缺陷带来的系统架构缺陷或性能风险;工程结构混乱导致后续项目维护艰难;没有鉴权的漏洞代码容易被黑客攻击等。依据约束力强弱及故障敏感性,规约依次分为**【强制】【推荐】【参考】**三大类。在延伸的信息中,“说明”对规约做了适当扩展和解释;正例”提倡什么样的编码和实现方式;反例”说明需要提防的雷区,以及真实的错误案例。 阅读详情

集合的有序和无序
所有集合的基类是Collection,而他的下面有有序集合List和无序集合Set。

子类继承父类的规范
从子类对象来说,我们是默认继承Object的。在Object里面提供了这些规定,比如说tosString。所有子类都有这个规范,而且这个方法就是规定返回这个对象的字符串的。

集合通过迭代接口或抽象类来制定规范
制定规范通常用接口或抽象类时,不同的集合要实现自己的迭代接口。要在List的类里写一个方法,让这个集合规范的接口的子类返回这个迭代接口。而如果每一个人写的数组或链表的数据结构只有他自己最清楚,他知道怎么迭代。我们只需要在迭代的时候定义好接口,让他返回这个接口。

import java.util.HashSet;
import java.util.Objects;

public class Student extends Object {
    public Student(int id, String name, char sex) {
        this.id = id;
        this.name = name;
        this.sex = sex;
    }
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }

    private int id;
    private String name;
    private char sex;

    public int hasCode (){
        return new Integer(id).hashCode()+
                   name.hashCode()+
               new Character(sex).hashCode();
    }

//    public  boolean equals(Object obj){
//        if(obj instanceof  Student){
//            student s=(Student) obj;
//            if(s.id==this.id&&
//            /*s.name==this.name 因为字符串也是对象*/
//            //对象比较用equals
//            s.name.equals(this.name)&&
//            s.sex==this.sex){
//        }
//        return true;
//    }
//    return false;

    /**
     * Objects的工具类
     */
    //如果我们自己写的对象,
    //放到集合里,要让集合判断这两个对象相等,
    //一定要重写它的equals和HasCode。
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return id == student.id &&
                sex == student.sex &&
                Objects.equals(name, student.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name, sex);
    }
}

import java.util.HashSet;

public class Test {
    public static void main(String[] args) {

        HashSet t = new HashSet();
        t.add("Hello");
        t.add("Hello");
        t.add("Hello");
        System.out.println(t.size());

        t = new HashSet();
        t.add(20);
        t.add(20);
        t.add(20);
        System.out.println(t.size());

        t=new HashSet();
        t.add(new Student(2222,"张三",'m'));
        t.add(new Student(2222,"张三",'m'));
        t.add(new Student(2222,"张三",'m'));
        System.out.println(t.size());
    }
}

1.集合类
集合类有list列,set集和map映射 三大类:
.
Set(集):集合中的对象无排列顺序,并且没有重复的对象。
.
List(队列):集合中的对象按照索引的顺序排列,可以有重复的对象(有索引就有顺序)。
.
Map(映射):集合中的每一个元素都是一对一对的,包括一个key对象,一个Value对象(一个Key指向一个Value).集合中没有重复的key对象,但是vaulue对象可以重复。
.
注意:(1)集合类是进行集合操作的;
(2)无序集不能放重复元素(否则直接覆盖),有序集可以放重复元素。
.
.
2.Collection与Collections
Collection是集合的一个接口,它提供了对集合对象进行操作的通用接口方法,定义了一种规范,是所有集合的基类;
Collections是一个包装类。它包含有各种有关集合操作的静态多态静态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。包括的方法有对集合中的元素进行排序、搜索等。
.
.
3.ArrayList、LinkedList、TreeSet、HashSet
.
作者:YJN_The8
来源:优快云
原文:https://blog.youkuaiyun.com/weixin_44084434/article/details/91362753
版权声明:本文为博主原创文章,转载请附上博文链接!

【Java实战】工作中规范使用Java集合 工作中集合就是家常便饭 阅读详情

相关推荐

JAVA规范集合

JAVA规范集合,java的一些命名规范等

JAVA 开发规范标准(集合)

JAVA 开发规范 一、编程规约 (一)命名规约 1. 【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符 号结束。 反例:_name / __name / $Object / name_ / name$ / Object$ 2. 【强制】 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的 方式。说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯 拼音命名方式也要避免采用。 反例:DaZhePromotion...

我们不生产任何代码 只做代码的搬运工 2103

STM32F103+W5500网络通信

STM32F103+W5500网络通信一、W5500模块(一)W5500以太网模块介绍(二)模块排针功能表二、 modbus协议(一)modbus协议原理(二)Modbus 通讯方式1.Modbus三种通讯方式2.在Modbus网络上传输3.以太网(modbus tcp/ip)三、参考资料 一、W5500模块 (一)W5500以太网模块介绍 D-W5500 EVB以太网模块是一款基于WIZnet W5500芯片的以太网模块,且性价比高的以太网模块。W5500是一款全硬件TCP/IP嵌入式以太网控制器,为

”一只特立独行的猪“的博客 1万+

JAVA集合框架的使用规范

JAVA集合框架的使用规范

weixin_68138130的博客 200

x265探索与研究(四):如何编码视频?

如何编码视频?           本文介绍x265中的两种编码视频方法,一是采用命令行的方法;二是GUI的方式。   1、命令行的方法   (1)、第一种方式生成*.265格式的视频文件           第一种方式可以生成*.265格式的视频文件,对应的命令为: x265 --input-res 352x288 --fps 30 hall_cif_352x288_300.y

成长Bar的博客专栏 3937

uCOS中的消息邮箱(:task与task之间传递一个数据(数据缓冲区))

程序需求,需要完成task与task之间  字符数组的数据传输 比如:在ucos中,串口2接收的字符数组是不定时的&不定长的;只有当接收到数据的时候_才将数据赋值给新数组 具体的程序示意如下: 图1:消息邮箱测试中的     向消息邮箱发送消息(OSMboxPost(Str_Box,(void*)rec);//发送消息--(向 消息邮箱_msg_key发送消息) ),实际项目需求的

faguoduifangui的博客 4540

Java中如何正确使用集合?

Java中如何正确使用集合?在 Java 中正确使用集合涉及多个方面,包括选择合适的集合类型、理解其性能特点以及遵循最佳实践。

记录学习编程的日常 623

FFmpeg + OBS 低延迟直播串流实战:从H264裸流到RTP组播的完整配置

本文详细介绍了如何利用FFmpeg将H264裸流转码为RTP协议,并通过组播技术实现与OBS客户端的超低延迟直播串流。文章深入剖析了FFmpeg关键参数调优、SDP文件生成与配置,以及OBS客户端的无缝拉流方法,为需要毫秒级实时交互的场景提供了一套去中心化、高效稳定的完整解决方案。

fanta的博客 830

java基础语法(二十二)List

List接口常用方法 1、List集合存储元素特点:有序可重复 有序:List集合中的元素有下标,从0开始,依次递增 可重复:存储的元素可以重复 2、List既然是Collection接口的子接口,那么肯定List接口有自己"特色"的方法; 以下只列出List接口特有的常用的方法 void add(int index,E element) 在列表的指定位置插...

Apikaqiu的博客 1万+

瑞萨芯片串口配置,基于RL78芯片的串口使用配置

在这里隆重给大家介绍瑞萨编辑器CS+ for CA 的自动生成代码功能,只需要配置几个参数,就可以得到你想要的串口配置了,我现在已经忘记怎么手动配置寄存器了,哈哈。选择设置,此时将端口设置成功接下来设置时钟,根据自己的芯片所需设置相应的时钟,自己芯片是什么时钟查看数据手册和原理图可以找到。瑞萨芯片的串口配置其实和ST芯片的串口配置差不多,只是ST芯片的中文数据手册比较多,就更好配置了,找到所需要的串口配置IO口,此时将UART0 配置为引脚P61和P62,瑞萨芯片的串口配置竟然要配置串口。

qq_45315904的博客 4303

南邮 2024 软件安全 实验四 自动脱壳+手动脱壳

这次这个实验很简单,就是一个简单的脱壳,然后进行爆破就行了,解法非常的多这里不多讲,会简单讲一下特殊情况这个点开是这样子:然后放进peid里面查看,我这个是原版的PEid,所以显示出来是这样:会显示nothing found,但其实如果你使用吾爱破解的魔改过的peid,它就会显示具体的壳名:然后你点击右下角的那个箭头,里面会有很多的插件用来自动脱壳:你也可以使用这个通用脱壳器,但是脱壳后的程序无法运行,这个放到后面讲。

ARbing_an的博客 2562

阿里java规约(一)-编程规约(5)-集合处理.md

集合处理(13)强制(8) 【强制】 关于 hashCode 和 equals 的处理,遵循如下规则: 1) 只要重写 equals,就必须重写 hashCode。 2) 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须重写这两个方法。 3) 如果自定义对象作为 Ma...

lol155的博客 215

MPU6050的四元数解算姿态方法

使用MPU6050硬件DMP解算姿态是非常简单的,下面介绍由三轴陀螺仪和加速度计的值来使用四元数软件解算姿态的方法。 我们先来看看如何用欧拉角描述一次平面旋转(坐标变换): MPU6050的四元数解算姿态方法 设坐标系绕旋转α角后得到坐标系,在空间中有一个矢量在坐标系中的投影为,在内的投影为由于旋转绕进行,所以Z坐标未变,即有。 转换成矩阵形式表示为: 即 所以从旋转到可以写成上面仅仅是绕一根轴的旋转,如果三维空间中的欧拉角旋转要转三次: MPU6050的四元数解算姿态方法 上面得到了一个表示旋转的方

qq_41938005的博客 8393

我为公司制定的Java代码规范

http://sulong.me/2009/06/05/code_standard Java代码规范 本Java代码规范以SUN的标准Java代码规范为基础,为适应我们公司的实际需要,可能会做一些修改。本文档中没有说明的地方,请参看SUN Java标准代码规范。如果两边有冲突,以本文档为准。 1. 标识符命名规范 1.1 概述 标识符的命名力求

rain的专栏 3576

R语言机器学习算法实战系列(十一)MLP算法分类器 (Multi-Layer Perceptrons)

本文介绍了多层感知器(MLP)分类算法的原理和计算步骤,并通过R语言实现MLP模型。MLP是一种前馈神经网络,包含输入层、隐藏层和输出层,通过激活函数引入非线性,利用前向传播和反向传播进行训练。文章详细描述了数据预处理、数据切割、模型构建、预测和评估等步骤,并提供了乳腺癌数据集(BreastCancer_clean.csv)的下载链接。通过R包如neuralnet和caret,读者可以逐步实现MLP模型,并评估其分类性能。

专注生信领域 935

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【JAVA编码规范】JAVA编码规范,超级详细的JAVA编码规范,太棒了,值得你通读一遍

【JAVA编码规范】JAVA编码规范,超级详细的JAVA编码规范,太棒了,值得你通读一遍 编码规范对于程序员而言尤为重要,有以下几个原因: 一个软件的生命周期中,80%的花费在于维护 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护 规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的设计和代码 良好的编码规范可以有效避免一些低级错误

xzb5566的专栏 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深入剖析Java阿里巴巴代码规范:提升代码质量的必由之路

阿里巴巴Java开发规范解读摘要 阿里巴巴Java开发规范是阿里巴巴技术团队多年实践经验的结晶,旨在提升代码质量、增强可维护性和促进团队协作。该规范涵盖了命名风格、常量定义、代码格式、OOP规约、集合处理等核心内容,已成为Java开发领域的行业标杆。 规范严格规定了命名规则:类名采用UpperCamelCase,方法变量使用lowerCamelCase,常量为全大写加下划线。强调杜绝魔法值,要求long型常量必须使用大写L后缀。代码格式方面规定4空格缩进、120字符行宽限制,以及统一的大括号和注释风格。

小相探索IT世界 5123

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

公司制定的Java代码规范

Java代码规范 本Java代码规范以SUN的标准Java代码规范为基础,为适应我们公司的实际需要,可能会做一些修改。本文档中没有说明的地方,请参看SUN Java标准代码规范。如果两边有冲突,以本文档为准。 1. 标识符命名规范 1.1 概述 标识符的命名力求做到统一、达意和简洁。 1.1.1 统一 统一是指,对于同一个概念,在程序中用同一种表示方法,

编程之美 1069

Java代码规范

由于近年来对于代码质量的要求越来越高,特制定衡泰Java代码规范规则集X-JAVA-RULE,整体要求规则可用可查、循序渐进。可用是指考虑目前已有代码的体量,不满足这些规则的代码能否被修改,如果不能被修改,暂时没有必要纳入其中。可查是指有工具可以扫描出,而不是人工筛查。以下规则均附上了SonaQube中的相应规则名称。直接输入SonaQube即可。比如规则1循序渐进是指以下规则集不是最终版本,根据实际情况后续会不断扩展。规则集会增删,会被继承,但每次不建议加入过多规则,导致无法推进。

m0_37607945的博客 1005

深入解析Reactive Streams规范

Reactive Streams是一个规范或标准。它是由多个组织和公司共同制定的接口规范,用于解决异步流处理中的背压(backpressure)问题。

codeideaai的博客 732

java开发规范文档_Java开发规范

随着《阿里巴巴Java开发手册》的公开,重新又掀起一股编码规范的风口。结合《华为java编程规范》以及团队内部的实践,我们也做了一段开发规范。不求最全,但求有效。里面的规范,暂时只分两类。“强制”,即如果违反就不能使用级别。比如说,在codereview有遇到 ,那就会直接把pull request打回去,拒绝合并到开发者稳定分支上。“推荐”,即建议怎么做,但是不强制,根据不同的水平可以做一些参考...

weixin_30273263的博客 406

华为Java编码规范

精选30+云产品,助力企业轻松上云!>>> 一、ja...

2560

阿里获邀加入 JCP ,参与制定 Java 全球标准和技术规范

开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> 2018年5月17日,作为唯一中国代...

测试 530

Java编程规范及最佳实践

本文概述了Java编程规范和最佳实践,涵盖了命名、代码风格、注释、编程实践、类与接口设计等方面。遵循这些规范有助于提高代码的一致性、可读性和可维护性,从而编写出更高质量的Java代码。

陆业聪 1876
上一篇: 【JAVA】输入一个链表,输出该链表中倒数第k个结点。
下一篇: 【JAVA】Map集合(映射集合)、键值对的概念&集合对象的取和放
寻爻青年
博客等级 码龄8年 27粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻爻青年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值