Я пытаюсь сделать так, чтобы записи истории из файла сохранения сортировались правильно, но ничего не отображается. Однако первый вариант работает, поскольку он отображает все 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
Пузырьковая сортировка банковской истории ⇐ JAVA
Программисты JAVA общаются здесь
1773031428
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);
// }
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79903596/bubble-sort-for-banking-history[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия