java數組sort()方法降序方式:
桐城網站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網頁設計、網站建設、微信開發(fā)、APP開發(fā)、響應式網站設計等網站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創(chuàng)新互聯(lián)公司。
用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;//統(tǒng)計數字
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)
{
//如果不出現(xiàn)異常,則說明肯定是數字。
}
}
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)方法。而且這個方法重載實現(xiàn)了多個參數,排序下標[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);