[英]Sorting an array of integers in descending order and relating it to its corresponding string array
[英]sorting an array of score(int) along with its corresponding name(string)
我正在制作一个拼字游戏应用程序,并且想要创建一个最高分系统。 我开始制作一个数组,在其中保存玩家的姓名及其相应的分数。 我想对分数数组进行排序,以便它们从最高到最低排列,并输出分数(降序排列)以及相应的名称。 请指导我如何对分数进行排序并输出分数以及相应的球员姓名。 任何帮助将非常感激。 谢谢!
这是我到目前为止的内容:
public class MainTop extends Activity {
TextView show;
EditText name;
EditText score;
Button ok;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layouttop);
show = (TextView) findViewById(R.id.textView1);
name = (EditText) findViewById(R.id.editText1);
score = (EditText) findViewById(R.id.editText2);
ok = (Button) findViewById(R.id.button1);
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String [] namearray = new String [4];
int [] scorearray = new int[4];
for (int i = 0; i < 4; i++){
String playername = name.getText().toString();
namearray[i] = playername;
String playerscorestr = score.getText().toString();
int playerscore = Integer.parseInt(playerscorestr);
scorearray[i] = playerscore;
show.setText(namearray[i] + scorearray[i]);
}
最好创建一个表示Player
的类。 它具有诸如score
, name
等属性,然后,您可以使Player
类实现Comparable
接口,以便您可以指定对象的排序方式。
一旦有了,就可以创建一个播放器List
,并使用Collections.sort()
对Player
对象进行排序。
像这样使玩家上课
public class LabelModel {
public ArrayList<LabelModel> labelModels;
public String labelId, labelName;
public ArrayList<LabelModel> getLabelModels() {
return labelModels;
}
public void setLabelModels(ArrayList<LabelModel> labelModels) {
this.labelModels = labelModels;
}
public String getLabelId() {
return labelId;
}
public void setLabelId(String labelId) {
this.labelId = labelId;
}
public String getLabelName() {
return labelName;
}
public void setLabelName(String labelName) {
this.labelName = labelName;
}
}
并像设置数组列表
for (int i = 0; i < length; i++) {
labelModel = new LabelModel();
JSONObject labeljson = jsonArray.getJSONObject(i);
labelModel.setLabelId("id");
labelModel.setLabelName("player name");
labelarray.add(labelModel);
}
我不知道分数和球员之间的关系,但是如果您的分数和球员像这样,那么您可以尝试一下
int[] scores={10,50,20,60};
String[] players={"player1","player2","player3","player4"};
Hashtable<String, String> playerdetails=new Hashtable<String, String>();
ArrayList scoreslist=(ArrayList) Arrays.asList(scores);
for(int i=0;i<scores.length;i++)
{
playerdetails.put(String.valueOf(scores[i]), players[i]);
}
Collections.sort(scoreslist);
for(int i=0;i<scoreslist.size();i++)
{
show.setText(scoreslist.get(i)+" "+playerdetails.get(scoreslist.get(i)));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.