java Comparable在对象要排序或作比较的时候的简单用法
来源:互联网 发布:js 截取数组 编辑:程序博客网 时间:2024/05/06 10:23
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
*
* @author King
*
*/
public class StoreBean implements Serializable, Comparable<StoreBean> {
/**
* 序列号
*/
private static final long serialVersionUID = -8660137923076411894L;
/** 主键 */
private String num;
/** 工作年限 */
private String nianXian;
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getNianXian() {
return nianXian;
}
public void setNianXian(String nianXian) {
this.nianXian = nianXian;
}
/**
* 含参数构造器
*
* @param num
* @param nianXian
*/
public StoreBean(String num, String nianXian) {
super();
this.num = num;
this.nianXian = nianXian;
}
/**
* 空参构造器
*/
public StoreBean() {
super();
}
@Override
public String toString() {
return "num=" + num + ", nianXian=" + nianXian;
}
/**
* 实现接口CompareTo的方法
*/
public int compareTo(StoreBean o) {
if (o instanceof StoreBean) {
System.out.println("注意了,我要调用compareTo方法了");
if (this.num.compareTo(store.getNum()) > 0) {
return 1;} else if (this.num.equals(store.getNum())) {
return 0;
} else {
return -1;
}
}
return -1;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((num == null) ? 0 : num.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
StoreBean other = (StoreBean) obj;
if (num == null) {
if (other.num != null)
return false;
} else if (!num.equals(other.num))
return false;
return true;
}
}
//==========================================================================================================以下是测试类
package com.huawei.it.test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class StoreBeanTest {
static List<StoreBean> ulist = new ArrayList<StoreBean>();
static {
ulist.add(new StoreBean("1", "1"));
ulist.add(new StoreBean("5", "5"));
ulist.add(new StoreBean("4", "4"));
ulist.add(new StoreBean("2", "2"));
ulist.add(new StoreBean("8", "8"));
}
//-------------------------------------------------------------
static StoreBean[] storeArr = new StoreBean[5];
static {
storeArr[0] = new StoreBean("1", "1");
storeArr[1] = new StoreBean("4", "4");
storeArr[2] = new StoreBean("2", "2");
storeArr[3] = new StoreBean("7", "7");
storeArr[4] = new StoreBean("5", "5");
}
//----------------------------------------------------------------------------------------------------------------------------------------------------------测试
public static void main(String[] args) {
collections();
arr() ;
}
/**
* 方法1:集合 的方法,排序,对象只有在实现了compareble方法才可以进行对比,y用sort排序
*/
public static void collections() {
System.out.println("----------collection------------");
Collections.sort(ulist);//排序,在此过程中jvm偷偷的调用StoreBean类自己的compareTo方法;
for (StoreBean stu : ulist) {
System.out.println("Num---->" + stu.getNum() + ", nainxian--->"
+ stu.getNianXian());
}
}
//collections是封装了集合的很多静态方法,为集合服务
/**
* 方法2:数组的方法,排序,对象只有在实现了compareble方法才可以进行对比,y用sort排序;
* compareto方法是在比较的时候底层进行了调用,我们看不到
*/
public static void arr() {
System.out.println("----------array------------");
Arrays.sort(storeArr);//排序,在此过程中jvm调用StoreBean类自己的compareTo方法;
for (int i = 0; i < storeArr.length; i++) {
System.out.println("Num---->" + storeArr[i].getNum()
+ ", nainxian--->" + storeArr[i].getNianXian());
}
}
}
//-----------------------------------------------------------------------------------------------------------------------------------打印结果
----------collection开始------------
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
Num---->1, nainxian--->1
Num---->2, nainxian--->2
Num---->4, nainxian--->4
Num---->5, nainxian--->5
Num---->8, nainxian--->8
----------collection结束---------------
----------------------array开始------------
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
注意了,我要调用compareTo方法了
Num---->1, nainxian--->1
Num---->2, nainxian--->2
Num---->4, nainxian--->4
Num---->5, nainxian--->5
Num---->7, nainxian--->7
- java Comparable在对象要排序或作比较的时候的简单用法
- JAVA中用于对象排序的比较器Comparable接口和compareTo()方法
- java中的Comparator和Comparable比较器的用法
- java比较类comparable和comparato的用法案例
- java 数组比较,元素的比较,Comparable,Comparator比较的应用实现,排序,查找示例
- Comparable和Comparator的比较用法
- java比较接口Comparable,对象排序存在TreeSet中
- 对象的比较Comparable与Comparator
- 对象的比较comparable与comparator
- 比较器的简单应用(Comparable接口)
- Java中double float 类型的数据(小数)在作计算的时候要注意的
- 如何实现对象的排序Comparable
- Java数据结构和算法-简单排序(4-对象排序及几种排序的比较)
- Java中Comparable和Comparator的比较
- Java中的Comparable和Comparator的比较
- Java的比较接口 Comparable与Comparator
- Java的Comparable接口&比较器原理
- Java comparable接口 对象排序
- codeforces——492A——Vanya and Cubes
- 狼追兔子
- shiro相同subject重复登录问题
- Windows 如何以管理员权限启动程序
- 动态规划--矩阵最小的路径和
- java Comparable在对象要排序或作比较的时候的简单用法
- 怎样用Java写一个动态的小时钟?
- Unity3d实现帧同步
- 万能RecyclerView的数据适配器BaseRecyclerViewAdapterHelper
- 频道管理
- Codeforces Round #416 (Div. 2) A. Vladik and Courtesy
- 指针数组
- HDU
- MediaMetadataRetrieverCompat