---授業でリストを使ったバブルソートの問題が出され,自分一人では解けそうにないのでどなたか力を貸してください.
以下のコードは配布されたコードです.下のほうにある「/以下にコードを記述する/」から下にコードを記述し
Funaki(0):100
Ito(1):95
Aoyama(2):90
・
・
・
・
Gunji(9):45
と大きい順に出力させたいです.
public static void sort(List<Student> list) {
}
の中身は自分が(おそらくこんな感じのコードになるだろうな)と思って記述しているのでどこが間違っているのか,こう書くとうまく作動するなど添削や指摘をしてくれるとありがたいです.
package studentSample;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class StudentMainWithList {
public static void main(String[] args) { String names[] = { "Aoyama", "Asou", "Baba", "Eto", "Funaki", "Goto", "Gunji", "Ikeuchi", "Ito", "Mori" }; int records[] = {90, 70, 88, 95, 100, 60, 45, 80, 95, 55}; List<Student> studentList = Collections.synchronizedList(new ArrayList<>()); for (int i = 0; i < names.length; i++) { Student s = new Student(names[i], i); s.setRecord(records[i]); studentList.add(s); } sort(studentList); for (int i = 0; i < studentList.size(); i++) { Student s = studentList.get(i); System.out.println(s.getName() + "(" + s.getStudentID() + "):" + s.getRecord()); } } /****以下にコードを記述する****/ public static void sort(List<Student> list) { for (int i = list.size()-1; i > 0; i--) { for (int j = 0; j < list.size()-1; j++) { Student student1 = list.get(j); Student student2 = list.get(j+1); if (student1.getRecord() > student2.getRecord()) { Student studenttmp = student1; student1 = student2; student2 = studenttmp; } } } }
}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/22 16:31