扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
可以用Comparator进行比较,下面是代码示例
成都创新互联主要从事网站建设、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务凤泉,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
//AbsComparator.java
import java.util.*;
public class AbsComparator implements Comparator {
public int compare(Object o1, Object o2) {
int v1 = Math.abs(((Integer)o1).intValue());
int v2 = Math.abs(((Integer)o2).intValue());
return v1 v2 ? 1 : (v1 == v2 ? 0 : -1);
}
}
//Test.java
import java.util.*;
public class Test {
public static void main(String[] args) {
//产生一个20个随机整数的数组(有正有负)
Random rnd = new Random();
Integer[] integers = new Integer[20];
for(int i = 0; i integers.length; i++)
integers[i] = new Integer(rnd.nextInt(100) * (rnd.nextBoolean() ? 1 : -1));
System.out.println("用Integer内置方法排序:");
Arrays.sort(integers);
System.out.println(Arrays.asList(integers));
System.out.println("用AbsComparator排序:");
Arrays.sort(integers, new AbsComparator());
System.out.println(Arrays.asList(integers));
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num ;
int max = 0;
int min =0;
while(true){
System.out.println("请输入一个整数“输入0时结束”:") ;
num = input.nextInt();
if(num==0){
break;
}
if(nummax) {
max=num;
}
if(nummin) {
min=num;
}
}
System.out.print("最大值为:"+max+" 最小值为:"+min);
}
用冒泡排序,对三个数字按照由小到大进行排序。以23、11、17为例,代码如下:
import java.util.Scanner;
public class woo {
static int[] bubbleSort(int[] date) {
boolean isSwap;
for(int j = 1; j date.length; j++) {
isSwap = false;
for(int i = 0; i date.length - j; i++) {
if(date[i] date[i+1]) {
date[i] = date[i] ^ date[i+1];
date[i+1] = date[i] ^ date[i+1];
date[i] = date[i] ^ date[i+1];
isSwap = true;
}
}
if(isSwap == false)
break;
}
return date;
}
public static void main(String args[]) {
int date[] = new int[3];
System.out.println("输入三个整数:");
Scanner num = new Scanner(System.in);
for(int i = 0;i date.length; i++)
date[i] = num.nextInt();
date = bubbleSort(date);
for(int count = 0; count date.length; count++)
System.out.print(date[count] +"\t");
System.out.println("");
}
}
扩展资料:
通常排序算法,可以分为两大类。
非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。包括交换排序、插入排序、选择排序、归并排序。
线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。包括计数排序、桶排序、计数排序。
参考资料:冒泡法排序——百度百科
改:
import java.util.Scanner;
public class CompareTwoNumber1{
double number1,number2;
Scanner scanner;
public CompareTwoNumber1(){
System.out.println("请输入两个数:");
scanner =new Scanner(System.in);
number1=scanner.nextDouble();
number2=scanner.nextDouble();
System.out.println("较大的数是:"+Math.max(number1,number2));
}
public static void main(String args[]){
CompareTwoNumber1 ct=new CompareTwoNumber1();
}
}
可以使用java.math.BigDecimal类型,把不同类型的数统一成这个类型,然后用compareTo方法比较,1、0、-1分别表示大于、等于、小于,例如:比较1.22 和 5,类声明和main方法声明略,直接写内容
BigDecimal num1 = new BigDecimal(1.22);
BigDecimal num2 = new BigDecimal(5);
if(num1.compareTo(num2) 0){
// 1.22比5大
} else if (num1.compareTo(num2) 0){
// 1.22比5小
} else {
// 1.22与5相等
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流