java数组sort()方法降序方式:
桐城网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。成都创新互联公司从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
用Arrays类sort()对数组元素进行降序排列
import java.util.Arrays;
class SortDemo
{
public static void main(String[] args)
{
int[] vec={0,15,-14,45,20,70};
Arrays.sort(vec);
System.out.println("/n");
System.out.println("降序排列:");
for (int i=vec.length-1;i=0 ;i-- )
{
System.out.print(vec[i]+" ");
}
}
}
import java.util.*;
public class Test {
public static void main(String[] args) {
int stuNum = 4;
int classNum = 3;
double[] score = new double[stuNum];
double sum = 0;
double[] avgrage = new double[classNum];
double[] arr = new double[classNum * stuNum];
Scanner input = new Scanner(System. in );
for (int i = 0; i classNum; i++) {
sum = 0;
System.out.println("请输入第" + (i + 1) + "个班级成绩:");
for (int j = 0; j score.length; j++) {
System.out.print("第" + (j + 1) + "个学员的成绩:");
double s = input.nextDouble();
score[j] = s;
sum += s;
arr[i * stuNum + j] = s;
}
avgrage[i] = sum / score.length;
System.out.println("第" + (i + 1) + "个班级参赛学员的平均分是:" + avgrage[i] + "\n");
}
input.close();
System.out.println("原序: " + Arrays.toString(arr));
//升序
for (int i = 0; i arr.length; i++) {
for (int j = i + 1; j arr.length; j++) {
if (arr[i] arr[j]) {
double tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
System.out.println("升序: " + Arrays.toString(arr));
//降序
for (int i = 0; i arr.length; i++) {
for (int j = i + 1; j arr.length; j++) {
if (arr[i] arr[j]) {
double tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
System.out.println("降序: " + Arrays.toString(arr));
}
}
你的数组声明跟初始化没有正确
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
*任意输入东西,以"空格"间隔
*当输入不是数字时,重新输入
*输入正确后,用回车结束输入的数字
*最后升序输出
*
*@author Yang
*/
public class JJArrangedNumbers
{
public static void main(String args[])
{
new ArrangedNumbers();
}
}
/**
*任意输入数字,并按升序排列输出
*
*@author Yang
*/
class ArrangedNumbers
{
Integer arryNum[] ;
int count = 0;//统计数字
public ArrangedNumbers()
{
this.inputNum();
this.compareNum();
this.outputNum();
}
/**
*@inputNum 任意输入字符,并判断为数字
*/
public void inputNum()
{
boolean judgeIsNum = true;
StringBuffer sb = new StringBuffer();
Scanner s = new Scanner(System.in);
while(judgeIsNum)
{
System.out.println("请任意输入数字,以空格间隔,以回车结束!");
String character = s.nextLine();
char[] figures = character.toCharArray();
for(int i=0;ifigures.length;i++)
{
if(!(figures[i]='1' figures[i]='9') figures[i]!=32)
{
judgeIsNum = true;
break;
}
judgeIsNum = false;
}
if(!judgeIsNum)
sb.append(character);
}
String inputContent = sb.toString();
ListInteger dbList = new ArrayListInteger();
String[] numbers= inputContent.split("\s+");
for (int i=0;inumbers.length;i++)
{
try
{
dbList.add(Integer.parseInt(numbers[i]));
count++;
}
catch(Exception e)
{
//如果不出现异常,则说明肯定是数字。
}
}
arryNum= new Integer[count];
int c=0;
for (Integer inNumber :dbList)
{
arryNum[c] = inNumber ;
c++;
}
}
/**
*@compareNum 对数字进行排序
*/
public void compareNum()
{
for (int i=0;iarryNum.length;i++)
{
for (int j=0;jarryNum.length-i-1;j++)
{
if(arryNum[j]arryNum[j+1])
{
Integer temp = arryNum[j];
arryNum[j] = arryNum[j+1];
arryNum[j+1] = temp;
}
}
}
}
/**
*@outputNum 按升序排列输出
*/
public void outputNum()
{
System.out.println("按升序排序:");
for(int i=0;iarryNum.length;i++)
{
System.out.println(arryNum[i]);
}
}
}
这个样子就可以了
int[] array = {1,2,5,8,12}; //随便定义一个数组,用冒泡排序法
for (int i = 0;i array.length;i++){
for(int j = i;j array.length;j++){
if (array[i] array[j]){
int temp = array[i];
array[i] = array[j];
array[i] = temp;
}
}
}
或者你有一个数组
List list = new ArrayList();
list.sort();
import java.util.Arrays;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
System.out.print("输入一串纯数字后按Enter键:");
Scanner sc = new Scanner(System.in);
String inps = sc.nextLine();
int maxNum = 0;
if(inps.trim().length()==0){
System.err.println("未输入有效数字内容!");
return;
}
Object[] inpsArr = new Object[0];
if(inps.indexOf(",")-1){
inpsArr = inps.split(",");//如果带有英文逗号则以逗号分隔拆分为数组
}else{
char[] charArray = inps.toCharArray();//否则拆分为数组时把每一个字符作为数组的一个元素
inpsArr = new Object[charArray.length];
for (int i = 0; i charArray.length; i++) {
char c = charArray[i];
inpsArr[i] = String.valueOf(c);
}
}
Object[] xx2 = sorts(inpsArr);//排序
System.out.println(Arrays.asList(xx2));//打印排序结果
}
/**
* 从大到小对数组元素进行排序,数组中的不可转换为数值的元素将保持原位置不变,不参与排序
* @param soureArr : 待排序的数组
* @return 排序好的数组
*/
static Object[] sorts(Object[] soureArr){
Object[] arr = Arrays.copyOf(soureArr, soureArr.length);//复制一份副本进行操作,不改变原数组内容
Double d = 0d;//允许元素带有小数点
Double d2 = 0d;//允许元素带有小数点
for (int i = 0; i arr.length-1; i++) {
String ss = String.valueOf(arr[i]);
try{
d = Double.valueOf(ss);
}catch(Exception e){
continue;//跳过 不可转换为数值的元素
}
for (int j = i+1; j arr.length; j++) {
String ss2 = String.valueOf(arr[j]);
try{
d2 = Double.valueOf(ss2);
}catch(Exception e){
continue;//跳过 不可转换为数值的元素
}
if(d d2){//排序方式:dd2为降序,dd2为升序
arr[i] = ss2;
arr[j] = ss;
ss = ss2;
d = d2;
}
}
}
return arr;
}
}
直接调用jdk里面的方法Arrays.sort(args)方法。而且这个方法重载实现了多个参数,排序下标[N~M]位数字~倒叙,升序等等~
for (int i = 0; i list.size(); i++) {
for (int j = i + 1; j list.size(); j++) {
if (list.get(i) list.get(j)) {
int temp = list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
}
}
System.out.println("升序:" + list);
for (int i = 0; i list.size(); i++) {
for (int j = i + 1; j list.size(); j++) {
if (list.get(i) list.get(j)) {
int temp = list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
}
}
System.out.println("降序:" + list);