package model;
/**
* 专家(群众)对象
*/
public class Judge {
private double score;
private int type;//0为专家,1为观众
private long id;
private String name;
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
*****************************************************************************************
package model;
/**
* 选手对象
*/
public class Player {
private double score;
private long id;
private String name;
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
******************************************************************************
package model;
/**
* 选手得分结果对象
*/
import java.util.List;
public class Score {
private List<Judge> scores;
private long id;//选手id
public List<Judge> getScores() {
return scores;
}
public void setScores(List<Judge> scores) {
this.scores = scores;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
}
********************************************************************************
package service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import model.Judge;
import model.Player;
import model.Score;
public class ProcessService {
public static Player process(Score scores){
Player p =new Player();
List<Judge> list = scores.getScores();
double[] d = new double[5];
double[] dd = new double[5];
int i=0;
int x=0;
for(Judge j:list){
if(j.getType()==0){
d[i]=j.getScore();
i++;
}
if(j.getType()==1){
dd[x]=j.getScore();
x++;
}
}
Arrays.sort(d);
Arrays.sort(dd);
double[] d1 = Arrays.copyOfRange(d, 1, 4);
double[] dd1 = Arrays.copyOfRange(dd, 1, 4);
double num1=0;
double num2=0;
for(double m:d1){
num1+=m;
}
for(double n:dd1){
num2+=n;
}
double score = num1*0.6+num2*0.4;
p.setScore(score);
return p;
}
public static void main(String args[]){
Judge j1=new Judge();
List<Judge> list =new ArrayList<Judge>();
j1.setScore(10);
j1.setType(0);
Judge j2=new Judge();
j2.setScore(10);
j2.setType(0);
Judge j3=new Judge();
j3.setScore(10);
j3.setType(0);
Judge j4=new Judge();
j4.setScore(10);
j4.setType(0);
Judge j5=new Judge();
j5.setScore(5);
j5.setType(0);
Judge j6=new Judge();
j6.setScore(10);
j6.setType(1);
Judge j7=new Judge();
j7.setScore(5);
j7.setType(1);
Judge j8=new Judge();
j8.setScore(5);
j8.setType(1);
Judge j9=new Judge();
j9.setScore(10);
j9.setType(1);
Judge j10=new Judge();
j10.setScore(10);
j10.setType(1);
list.add(j1);
list.add(j2);
list.add(j3);
list.add(j4);
list.add(j5);
list.add(j6);
list.add(j7);
list.add(j8);
list.add(j9);
list.add(j10);
Score scores = new Score();
scores.setScores(list);
Player p = process(scores);
System.out.println(p.getScore());
}
}