- 浏览: 63376 次
- 性别:
- 来自: 南京
-
文章分类
最新评论
java 中对象比较大小
java 中对象比较大小有两种方法
1:实现Comparable 接口 的 public int compareTo(T o) 方法;
2:实现Comparator 接口 的 int compare(T o1, T o2)方法;
代码如下:
java 中对象比较大小有两种方法
1:实现Comparable 接口 的 public int compareTo(T o) 方法;
2:实现Comparator 接口 的 int compare(T o1, T o2)方法;
代码如下:
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Set; import java.util.TreeSet; public class Test { public static void main(String[] args) { List list =new ArrayList(); list.add(new Dept("2","研发部",23)); list.add(new Dept("2","总公司",575)); list.add(new Dept("2","总公司",565)); // Collections.sort(list); Collections.sort(list, new Comparator(){ public int compare(Object arg0, Object arg1) { // TODO Auto-generated method stub Dept dept1=(Dept)arg0; Dept dept2=(Dept)arg1; return dept1.compareTo(dept2); } }); for (int i=0;i<list.size();i++){ System.out.println((Dept)list.get(i)); } Dept dept1=new Dept("2","研发部",23); Dept dept2=new Dept("2","kk",44); Set set=new TreeSet(new Comparator(){ public int compare(Object arg0, Object arg1) { // TODO Auto-generated method stub return 0; } }); set.add(dept1); set.add(dept2); } } class Dept implements Comparable{ private String id; private String name; private long num; public Dept(String id,String name,long num){ this.id=id; this.name=name; this.num=num; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public long getNum() { return num; } public void setNum(long num) { this.num = num; } public int compareTo(Object arg0) { Dept dept=(Dept) arg0; int i=0; i=this.id.compareTo(dept.id); if(i!=0){//部门id不相等 return i; }else{//部门id相等 i=this.name.compareTo(dept.name); if(i!=0){//部门名称不相等 return i; }else{//部门名称不相等 if(this.num>dept.num)return 1; else if(this.num<dept.num)return -1; else return 0; } } } public String toString() { // TODO Auto-generated method stub return this.id+"-->"+this.name+"-->"+this.num; } }
发表评论
-
html5 跨域访问
2017-08-18 13:10 399@Configuration public class ... -
javat进程 cpu100%,解决方法
2017-07-24 16:35 425Java进程cpu100%,解决方法如下: 1.执行top ... -
eclipse 汉化
2017-06-20 12:48 396Installing the language packs O ... -
判断移动设备环境
2016-06-21 09:50 433/** * 客户端判断工具 * */ ... -
Java 文件锁
2016-06-17 09:50 382FileChannel channel FileLock ... -
并发同步列子
2016-06-16 09:30 368import java.util.concurrent.Cou ... -
java.util.concurrent 用户指南
2016-06-15 14:09 350java.util.concurrent 用户指南 -
java 反射工具
2016-06-12 11:07 495java 反射工具 package com.util; ... -
linux java 安装
2016-04-23 10:19 391下载jdk-7u79-linux-x64.tar.gz文件,解 ... -
对象序列化和反序列化
2016-04-14 20:28 437当一个对象的实例变量 ... -
java 垃圾回收机制
2016-03-02 11:08 328http://www.cnblogs.com/dartagn ... -
ngrok_windows.rar 映射外网
2016-02-29 16:50 540ngrok_windows.rar 映射外网 -
性能优化技巧
2015-09-09 08:48 6171. 尽量使用final修饰符。 带有final修饰符的类是 ... -
java 反编译工具
2015-02-14 17:05 636java 反编译工具 -
java中 对象的克隆(clone)
2010-05-01 02:40 874java中 克隆一个对象需要三步: 1:克隆的对象实现 Clo ...
相关推荐
总结来说,理解Java对象大小的计算对于优化内存使用、防止内存泄漏以及提高应用程序性能至关重要。开发人员需要了解不同方法的优缺点,并根据实际需求选择合适的方式。同时,应当注意,过于关注单个对象的大小可能...
但是,Java API本身并不提供直接获取对象大小的方法。为了计算对象大小,我们需要借助一些第三方库或者自行实现。 一个常见的第三方库是`DeepSizeOf`,它来自Eclipse Collections框架,提供了类似于C++中的`sizeof`...
当我们谈论“Java对象内存大小”时,我们通常指的是一个Java对象在内存中占据的空间,包括对象头、实例字段以及可能的对齐填充。这个知识点对于开发高效缓存系统尤其重要,因为缓存需要精确管理内存来最大化存储效率...
本文将深入探讨如何计算Java对象的大小,以及这个知识点在实际开发中的应用。 首先,Java对象的大小不仅仅包括其字段的大小,还包括对象头(object header)的大小,对于HotSpot虚拟机,它包含了对齐填充、Mark ...
通过`Unsafe`类或`Instrumentation`接口,我们可以获取这些组成部分的具体大小,进而了解一个Java对象在内存中的占用情况。这样的知识对于优化内存使用、排查性能问题和理解JVM内存模型具有重要意义。
本示例“测量Java对象大小的demo”提供了一种方法,通过使用Java的`java.lang.instrument`包来注入`javaagent`,进而利用`Instrumentation`接口测量Java对象的精确内存占用。下面我们将详细探讨这一过程。 首先,`...
首先,Java对象在堆内存中由四个部分组成:对象头(A)、基本类型域(B)、引用类型域(C)和填充物(D)。 **对象头(A)**: 对象头包含了对象的元数据,如对象实例的名字、唯一标识(对象ID)以及对象的状态信息...
总的来说,理解Java对象在内存中的表示方式和占用空间,结合合适的工具进行监控,是开发高效、稳定的Java应用的基础。通过深入学习这些知识点,开发者可以更好地优化程序,提高系统资源利用率,避免因内存问题导致的...
Font 类是 Java 中的一个类,用于设置程序中的字体实例对象。 Font 类有三个参数:face、style、size,分别指字体的外观、样式和大小。我们可以使用 Font 类的静态方法 getFont() 创建 Font 对象,例如:Font font =...
NULL 博文链接:https://spice.iteye.com/blog/1104340
### 深层解析Java虚拟机中的栈与堆:对象的内存分布 #### 核心概念:栈与堆的本质及作用 在Java编程语言中,理解栈(stack)和堆(heap)的概念及其工作原理对于深入掌握Java虚拟机(JVM)如何管理内存至关重要。栈和堆...
Java 字符串转换为日期和时间比较大小是 Java 开发中常见的操作。下面我们将详细介绍两种方法来实现 Java 字符串转换为日期和时间比较大小。 方法一:使用 SimpleDateFormat 在 Java 中,SimpleDateFormat 是一个...
总结来说,这个例子旨在帮助开发者理解Java对象在内存中的表示方式,以及不同类型和结构的对象如何影响内存使用。通过这种方式,开发者可以优化代码,减少不必要的内存开销,提高应用程序的效率。同时,这也提醒我们...
在Java编程中,对象的比较和排序是常见的需求,特别是在处理集合时。Java提供了两种主要的方式来实现对象之间的比较,即`Comparable`接口和`Comparator`接口。这两种接口使得自定义对象可以根据特定的规则进行排序。...
本文将深入探讨Java中的对象内存占用,以及如何使用"java-sizeof-0.0.4"工具来查看Java对象在内存中的大小。 在Java中,内存主要分为堆内存(Heap)和栈内存(Stack)。对象通常存储在堆内存中,而基本类型的变量和...
在Java编程语言中,对字符串进行按字母顺序比较大小是一项常见的任务。这主要涉及到字符串排序、字符比较以及字符串操作的相关知识。以下是对这个主题的详细解释: 首先,我们需要理解Java中的字符串是不可变对象,...
在类 A 的定义中,compareTo 方法中的比较规则就表示了类 A 对象的大小比较规则,即当属性 x 与 y 的和值相等时两个对象相等,当和值大时则对应的对象大,否则对应的对象就小。 三、 String 类对象比较分析 String...
本篇文章将深入探讨Java中的对象、基础类型以及数据处理相关的工具类。 首先,让我们关注Java中的基础类型。Java有八种原始数据类型:byte、short、int、long、float、double、char和boolean。为了方便处理这些类型...
在这个名为“Java面向对象五子棋”的项目中,我们有两个使用Java实现的五子棋小游戏源码,它们完全遵循面向对象的原则,可以为学习者提供启发和实践机会。 在面向对象编程中,类是核心概念,它是对现实世界中事物的...
3. **对齐填充(Padding)**:由于虚拟机要求对象起始地址必须是8字节的整数倍,填充是为了让对象大小符合这一要求而存在的。 #### 五、对象初始化过程 对象初始化是构造对象的最后一步,它包括以下几个方面: 1. *...