问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

java泛型 二分查找

发布网友 发布时间:2022-05-03 05:37

我来回答

3个回答

热心网友 时间:2023-10-11 11:21

以下代码是关于对象的 二分查找 的例子,已经测试通过,执行即可。
Student 是基本比较对象类
Dichotomy 是二分法执行类
Test 是测试类

package com.dichotomy;

public class Student implements Comparable<Student> {

private int id;
private String name;
private String idCard;
private String sex;
private String mobile;

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 String getIdCard() {
return idCard;
}

public void setIdCard(String idCard) {
this.idCard = idCard;
}

public String getSex() {
return sex;
}

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

public String getMobile() {
return mobile;
}

public void setMobile(String mobile) {
this.mobile = mobile;
}

/**
* 排序控制
* @param o1 Student
* @param o2 Student
* @return int 返回 -1 向前移动, 1 向后移动, 0 不移动
* 这个方法需要自己进行调整,排序比较和二分查找时均使用此方法进行位置调整
* 比较时使用的key自己可以进行修改,不过要保证唯一性,否则查询出来的值会不准确
*/
public int compareTo(Student o) {

//不同的执行次序决定排序和查找次序不同,可以同下面的调换一下
if(this.getId() < o.getId()){
return -1;
} else if(this.getId() == o.getId()){
;
} else {
return 1;
}

//不同的执行次序决定排序和查找次序不同
int c = this.getIdCard().compareTo(o.getIdCard());
if(c != 0){
return c;
}

//不同的执行次序决定排序和查找次序不同
int n = this.getName().compareTo(o.getName());

if(n != 0){
return n;
}

return 0;
}

public String toString(){
StringBuffer sb = new StringBuffer();
sb.append(this.getId()).append("\t");
sb.append(this.getName()).append("\t");
sb.append(this.getIdCard()).append("\t");
sb.append(this.getMobile()).append("\t");
sb.append(this.getSex());
return sb.toString();
}
}

热心网友 时间:2023-10-11 11:21

你可以参考java.util.Arrays这个类,里面提供非常全的数组操作,包括你要的查找,还有排序等,而且针对任何类型。
源码可以参考你C:\Program Files\Java\jdk1.6.0_11下src.zip文件里面java\until\Arrays.java

热心网友 时间:2023-10-11 11:21

1、实现comparable接口,实现compareTo()方法。
2、把你那段算法里所有array[...]和value之间的>、<、==比较,改用value.compareTo(array[...]) == 0、value.compareTo(array[...]) > 0、value.compareTo(array[...]) < 0
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
怎么查看自己有没有订购爱玩4G定向流量? 爱玩4g的免流量为什么开通失败 成都哪里有卖sk2的专柜 成都批发手表市场在哪(成都钟表批发市场在哪里) 金沙车站坐几路车可以到二环路西二段 仁和春天 ...坐火车动车到成都,然后到市二环路西二段19号仁和春天广场五楼,怎么... 电信卡在天翼4G为什么显示无服务? 孩子自理自律的培养方法 微信充话费充值号码错误可以退吗 微信支付充话费充错号码怎么办? 求一个java的二分查找的程序代码 以下是二分查找的java问题 创意led天气预报闹钟怎么设置 做个有创意的闹钟形状选择怎样的比较好?最好带点图片哦。 &quot;聊斋&quot;共有几卷 8几年的老电视剧古装聊斋 大学毕业三年,你有多少存款 乳山市滨海基金小镇企业管理有限公司怎么样? 微信分身,是一个同时能在一个手机上分身登吗? 微信分身能用两个? 我只有一个手机号码可以微信分身吗?分身后是同一个吗? 微信分身能注册吗? 被封了,开通分身可以吗 一个可以分身吗 如皋亦静文化传媒有限公司怎么样? 大连棉麻有限公司怎么样? 浙江量源子供应链管理有限公司怎么样? 徐州东方瑞成电气科技有限公司怎么样? 钢结构中的PL是什么? 160&#x2718;160方钢壁厚6毫米每米重量是多少?如何计算? 求一个简单的一维数组二分查找程序代码Java JAVA 二分查找? java什么是二分查找? java自己实现一个toString、sort、binarySearch 的方法 二分查找法,java的 Java的线性查找,二分查找,冒泡排序,插入排序,快速排序的源代码 java 二分查找法写的代码和例子一样,但是输出的索引值总是-1 java 二分查找疑惑 一道Java二分查找题目 程序运行超时 求解答 激光的资料 关于激光有哪些介绍? 有关激光的资料 runningmanEP507是哪集 关于激光的资料100字左右 提高早读效率的几点做法 关于激光的资料 如何提高学生的英语早读效率 郑州小吃培训都有哪些 激光的资料谁有? 如何提高英语早读的效率
  • 焦点

最新推荐

猜你喜欢

热门推荐