Пузырьковая сортировка банковской историиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Пузырьковая сортировка банковской истории

Сообщение Anonymous »

Я пытаюсь сделать так, чтобы записи истории из файла сохранения сортировались правильно, но ничего не отображается. Однако первый вариант работает, поскольку он отображает все 50 записей истории случайным образом, как и ожидалось. Не могу понять, почему не сортируется. Вот мои 2 основных файла. (Извините, если я что-то упустил или прозвучал глупо, я новичок в сортировке.)
Фрагмент 1 метода, в котором я пытаюсь выполнить сортировку:
else if (choice == 2) {
// sort by account types
for (int i = 0; i < HistoryManager.globalTransHistory.size() - 1; i++) {
for (int j = 0; j < HistoryManager.globalTransHistory.size() - i - 1; j++) {
String entry1 = HistoryManager.globalTransHistory.get(j);
String entry2 = HistoryManager.globalTransHistory.get(j + 1);

String[] parts1 = entry1.split("\\|");
String[] parts2 = entry2.split("\\|");

if (parts1.length < 2 || parts2.length < 2)
continue;
String type1 = parts1[1].replace("account type:", "").trim(); // "chequing"
String type2 = parts2[1].replace("account type:", "").trim();
if (type1.compareTo(type2) > 0) {
// swapping
HistoryManager.globalTransHistory.set(j, entry2);
HistoryManager.globalTransHistory.set(j + 1, entry1);
}
}
}
System.out.println("\n======= TRANSACTION HISTORY =======");
for (String entry : HistoryManager.globalTransHistory) {
System.out.println(entry);
}
System.out.println("===================================\n");
return;
}

Полный другой класс:
import java.util.ArrayList;

public class HistoryManager {

static ArrayList globalTransHistory = new ArrayList();

// single method to log any action
public static void logHistEntry(String actionType, int accountNum, String accountType, double amount) {

String timestamp = java.time.LocalDateTime.now()
.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
String entry = timestamp + "| account type: " + accountType + " | account#" + accountNum + " | " + actionType + " | amount $" + amount;

globalTransHistory.add(entry);
}

// public static void logAndTransferHistory(int fromAcc, int toAcc, double amount, double fromBalance, double toBalance) {

// String timestamp = java.time.LocalDateTime.now().toString();
// String entry = timestamp + " | account#" + accountNum + " | " + actionType + " | $" + amount + " | balance: $" + newBalance;

// globalHistory.add(entry);
// }
}


Подробнее здесь: https://stackoverflow.com/questions/799 ... ng-history
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»