java 实现方法_java常见代码(1)------常见实现方法

news/2024/7/12 2:54:49

1.equals 和 hashcode方法

class Students {

String name;

int age;

byte[] idSequence;

@Override

public boolean equals(Object obj) {

if (!(obj instanceof Students))

return false;

Students other = (Students) obj;

return name.equals(other.name)

&& age == other.age

&& Arrays.equals(idSequence, other.idSequence);

}

@Override

public int hashCode() {

return name.hashCode() + age + Arrays.hashCode(idSequence);

}

}

对于Students任意的非null的对象stu,stu.equals(null),应该返回false; 而不应该抛出空指针异常,所以使用 instanceof来判断;

对于基本原始类型,比较用“==”;对于对象类型,比较用“equals()” 方法;

需要实现相应的hashcode()方法;

数组类型,应调用相应Arrays类里的方法

2.compareTo

class Person implements Comparable {

String firstName;

String lastName;

int birthdate;

@Override

public int compareTo(Person other) {

if (firstName.compareTo(other.firstName) != 0)

return firstName.compareTo(other.firstName);

else if (lastName.compareTo(other.lastName) != 0)

return lastName.compareTo(other.lastName);

else if (birthdate < other.birthdate)

return -1;

else if (birthdate > other.birthdate)

return 1;

else

return 0;

//可以用Integer.Compare(int, int) 代替;java7

}

}

只有返回值的符号是重要的,所以不应该有判断返回值是否为-1的语句出现;

两个如int 类型做差比较来实现在不发生溢出的情况下是可行的;

3.clone

class Values implements Cloneable {

String letter;

double fol;

int[] numbers;

Date date;

public Values clone() {

try {

Values res = (Values) super.clone();

res.numbers = res.numbers.clone();

res.date = (Date) res.date.clone();

return res;

} catch (CloneNotSupportedException e) {

throw new AssertionError(e);

}

}

}

不用再为原始类型或者不可变类型来clone;

对其他字段进行clone(objects/arrays);

该接口中并无clone方法


http://www.niftyadmin.cn/n/3018936.html

相关文章

JdbcSink 简析

文章目录1、JdbcSink1.1、参数1.2、返回2、JdbcBatchingOutputFormat2.1、参数2.2、open方法2.2.1、连接数据库2.2.2、JdbcExec2.2.3、scheduler2.3、writeRecord方法2.3.1、缓存数据2.3.2、flush1、JdbcSink 用于DataStream增加Jdbc的Sink输出&#xff0c;主要两个接口&#x…

机器学习(1)_R与神经网络之Neuralnet包

本篇博客将会介绍R中的一个神经网络算法包&#xff1a;Neuralnet&#xff0c;通过模拟一组数据&#xff0c;展现其在R中是如何使用&#xff0c;以及如何训练和预测。在介绍Neuranet之前&#xff0c;我们先简单介绍一下神经网络算法。 人工神经网络(ANN)&#xff0c;简称神经网络…

C# List.ForEach 方法

C#中List.ForEach 方法是对 List 的每个元素执行指定操作。 示例&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace AppExample {class Program{static void Main(string[] args){…

Adaptive调度器

文章目录1.前言2.测试3.配置启用4.其他配置参数4.1.主要配置4.2.其他可能相关的配置5.调用流程6.配置Adaptive调度器7.DefaultDeclarativeSlotPool7.1.NewSlotsListener7.2.offerSlots7.3.freeReservedSlot7.4.缩容触发8.AdaptiveScheduler8.1.使用条件8.2.计算并行度信息8.2.1…

jQuery触屏插件:Tap 代码

jQuery触屏插件&#xff1a;Tap&#xff0c;使用方法非常简单&#xff0c;例&#xff1a;$("#domid").tap(function(){alert("You tapped me! -- by"this.innerText);});依赖jquery 1.701$.fn.tap function(fn){02var collection this,03isTouch "…

e开头的java编辑器叫什么意思_java处理百度编辑器ueditor上传的图片等多媒体文件...

java处理百度编辑器ueditor上传的图片等多媒体文件开发项目过程中&#xff0c;一般会涉及到采用富文本编辑器处理“内容”之类的业务&#xff0c;而这内容中&#xff0c;难免会上传各种图片、视频等。而一般采用的富文本编辑器常见的有ueditor百度编辑器、widgEditor等等。我一…

Flink语法扩展--SqlRichExplain为例

文章目录1.修改文件列表2.SqlRichExplain3.parserImpls.ftl4.Parser.tdd5.ExplainOperation6.SqlToOperationConverter7.FlinkPlannerImpl8.Parser.jj9.FlinkSqlParserImpl1.修改文件列表 一些原始的修改&#xff0c;后续的部分增强没有再加入说明 flink-sql-client&#xff1…

ajax查询数据库时数据无法更新的问题

楼主问题&#xff1a;做这个留言本都郁闷得我想杀遍整个东南亚了,莫名问题层出不穷!目前这个问题是这样的:我使用ajax的http.open(get,url)方法,在url后附加参数传到后台查询留言本数据库的内容.但每次查询后,如果你再插入新的数据,再使用ajax传递同样的参数过去,显示的还是第一…