java实现给出分数数组得到对应名次数组的方法

本文实例讲述了java实现给出分数数组得到对应名次数组的方法。分享给大家供大家参考。具体实现方法如下:

package test01;
/**
 * 给出分数数组,得到对应的名次数组
 * 列如有:score = {4,2,5,4}
 * 则输出:rank = {2,3,1,2}
 */
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ScoreRank {
  // 输出数组
  public static void show(int[] s){
    for(int x:s) System.out.print(x);
    System.out.println();
  }
  // 取得名次
  public static int[] scoreRank(int[] score) {
    int[] temp = new int[score.length];
    List lis = new ArrayList();
    for(int x:score)   // 添加元素(不重复)
      if(!lis.contains(x)) lis.add(x);
    Collections.sort(lis);    // 从小到大排序
    Collections.reverse(lis);  // 从大到小排序
    for(int i=0;i<score.length;i++) // 下标从 0 开始
      temp[i] = lis.indexOf(score[i])+1;
      // 所以:正常名次 = 取得下标 + 1
    return temp;
  }
  public static void main(String[] args){
    int[] score = {4,2,5,4};  // 名次 {2,3,1,2}
    int[] rank = scoreRank(score);  // 取得名次
    System.out.print("原始分数:");show(score);
    System.out.print("对应名次:");show(rank);
  }
}

运行结果如下:

原始分数:4254
对应名次:2312

希望本文所述对大家的java程序设计有所帮助。

(0)

相关推荐

  • Java中的数组基础知识学习教程

    数字 通常情况下,当我们处理数字时,使用原始数据类型,如 byte,int,long,double 等. 示例 int i = 5000; float gpa = 13.65; byte mask = 0xaf; 然而,在开发中,我们会遇到需要使用对象而不是原始数据类型的情况.为了实现这个, Java 为每个原始数据类型提供包装类. 所有的包装类 (Integer, Long, Byte, Double, Float, Short) 是抽象类 Number 的子类. 这种包装是由编译器处理,这个

  • Java接口中尽量避免使用数组

    如果你发现在一个接口使用有如下定义方法: public String[] getParameters(); 那么你应该认真反思.数组不仅仅老式,而且我们有合理的理由避免暴露它们.在这篇文章中,我将试图总结在Java API中使用数组的缺陷.首先从最出人意料的一个例子开始. 数组导致性能不佳 你可能认为使用数组是最快速的,因为数组是大多数collection实现的底层数据结构.使用一个纯数组怎么会比使用一个包含数组的对象性能更低? 让我们先从这个看起来很熟悉的普遍的习惯用法开始: public S

  • Java中char数组(字符数组)与字符串String类型的转换方法

    本文实例讲述了Java中char数组(字符数组)与字符串String类型的转换方法.分享给大家供大家参考,具体如下: 在Java语言编程时,使用"口令字段"jPasswordField组件时,如果要获得密码值,就需要使用该组件的getPassword()方法.jPasswordField的getPassword()方法返回一个char类型的数组,我们经常需要将这个数组转换为String类型,以便进行诸如口令匹配或口令赋值等操作.这时,就需要将char类型的数组进行转换.当然也经常会遇到

  • Java编程实现中英混合字符串数组按首字母排序的方法

    本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法.分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序.例如: String[] arrays = new String[] { "gyu", "sdf", "zf", "大同", "收到", "地方", "三等分"

  • Java中使用While语句自增运算遍历数组典型实例

    public class BirdArray { public static void main(String args[]){ String[] str = new String[]{"麻雀","老鹰","白鸽","黄雀","百灵鸟","孔雀","鹦鹉","丹顶鹤"}; int index =0; //创建索引变量 System.out.prin

  • Java ArrayList 数组之间相互转换

    做研发的朋友都知道,在项目开发中经常会碰到list与数组类型之间的相互转换,本文通过一个简单的例子给大家讲解具有转换过程. Java代码 package test.test1; import java.util.ArrayList; import java.util.List; public class Test { /** * @param args */ public static void main(String[] args) { List list=new ArrayList(); l

  • Java实现字符数组全排列的方法

    本文实例讲述了Java实现字符数组全排列的方法.分享给大家供大家参考,具体如下: import org.junit.Test; public class AllSort { public void permutation(char[] buf, int start, int end) { if (start == end) {// 当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可 for (int i = 0; i <= end; i++) { System.out.print(bu

  • 详解Java中的数组与字符串相关知识

    Java数组的定义和使用 如果希望保存一组有相同类型的数据,可以使用数组. 数组的定义和内存分配 Java 中定义数组的语法有两种: type arrayName[]; type[] arrayName; type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量.例如: int demoArray[]; int[] demoArray; 这两种形式没有区别,使用效果完全一样,读者可根据自己的编程习惯选择

  • Java数组的基本学习教程

    Java数组声明.创建.初始化 一维数组的声明方式: type var[]; 或type[] var; 声明数组时不能指定其长度(数组中元素的个数), Java中使用关键字new创建数组对象,格式为: 数组名 = new 数组元素的类型 [数组元素的个数] 实例: TestNew.java: 程序代码: public class TestNew { public static void main(String args[]) { int[] s ; int i ; s = new int[5]

  • 关于Java数组声明、创建、初始化的相关介绍

    本文讲述了Java数组的几个相关的方面,讲述了对Java数组的声明.创建和初始化,并给出其对应的代码. 一维数组的声明方式:type var[]; 或type[] var; 声明数组时不能指定其长度(数组中元素的个数), Java中使用关键字new创建数组对象,格式为:数组名 = new 数组元素的类型 [数组元素的个数] 实例:TestNew.java: 程序代码: public class TestNew { public static void main(String args[]) {

随机推荐