大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以使用java.math.BigDecimal类型,把不同类型的数统一成这个类型,然后用compareTo方法比较,1、0、-1分别表示大于、等于、小于,例如:比较1.22 和 5,类声明和main方法声明略,直接写内容
创新互联网络公司拥有十年的成都网站开发建设经验,1000+客户的共同信赖。提供网站设计、成都网站制作、网站开发、网站定制、买链接、建网站、网站搭建、成都响应式网站建设、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务
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相等
}
Arrays.sort(a);//这个是把数组中的数进行从小到大的排列,数组第一个数最小,最后个最大
把们们放入数组中,以你上面的为例:
import java.util.*;
public class test
{
public static void main(String[] args)
{
int[] a=new int[]{1,2,3,10,4,9,8,-4};
Arrays.sort(a);
for(int i=0;ia.length;i++)
System.out.println(a[i]);
}
}
可以用Comparator进行比较,下面是代码示例
//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));
}
}
JVM(java虚拟机)会自动维护八种基本类型的常量池,int常量池中初始化-128~127的范围,所以当为Integer i=127时,在自动装箱过程中是取自常量池中的数值,而当Integer i=128时,128不在常量池范围内,所以在自动装箱过程中需new 128,所以地址不一样。
import java.util.Arrays;
import java.util.Collection;
public class Demo2 {
public static void main(String[] args) {
// 这是你的三个数
int[] arr = { 12, 32, 18 };
// 两层嵌套循环
for (int i = 0; i arr.length; i++) {
for (int j = 0; j i; j++) {
// 如果后者小于前者,让他们交换位置,一直循环
// 直到每个数字都从头到尾跟数组里的每个数字比较一次
if (arr[i] arr[j]) {
// 这三步就是交换位置,相信聪明的你一定看得懂了
arr[i] = arr[i] + arr[j];
arr[j] = arr[i] - arr[j];
arr[i] = arr[i] - arr[j];
}
}
}
//最后打印出来
for (int i = 0; i arr.length; i++) {
System.out.println(arr[i]);
}
}
}
资料拓展:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论
用冒泡排序,对三个数字按照由小到大进行排序。以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),因此称为非线性时间比较类排序。包括交换排序、插入排序、选择排序、归并排序。
线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。包括计数排序、桶排序、计数排序。
参考资料:冒泡法排序——百度百科