Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.25 KB | None | 0 0
  1. import java.util.ArrayList;
  2. public class Bank {
  3. BankAccount ba;
  4. Customer c;
  5. ArrayList<BankAccount> accountList;
  6.  
  7. /** Skapar en ny bank utan konton. */
  8. Bank() {
  9. accountList = new ArrayList<BankAccount>();
  10.  
  11. }
  12.  
  13. /**
  14. * Öppna ett nytt konto i banken. Om det redan finns en kontoinnehavare med de
  15. * givna uppgifterna ska inte en ny Customer skapas, utan istället den
  16. * befintliga användas. Det nya kontonumret returneras.
  17. */
  18. long addAccount(String holderName, long idNr) {
  19. for(BankAccount ba : accountList) {
  20. if(ba.getHolder().getName().equalsIgnoreCase(holderName) && ba.getHolder().getIdNr() == idNr) {
  21. accountList.add(new BankAccount(ba.getHolder()));
  22. return accountList.get(accountList.size()-1).getAccountNumber();
  23. }
  24. }
  25. accountList.add(new BankAccount(holderName, idNr));
  26. return accountList.get(accountList.size()-1).getAccountNumber();
  27. }
  28.  
  29. /**
  30. * Returnerar den kontoinnehavaren som har det givna id-numret, eller null om
  31. * ingen sådan finns.
  32. */
  33. Customer findHolder(long idNr) {
  34. for (BankAccount ba : accountList) {
  35. if (ba.getHolder().getIdNr() == idNr) {
  36. return ba.getHolder();
  37. }
  38. }
  39. return null;
  40. }
  41.  
  42. /**
  43. * Tar bort konto med nummer ’number’ från banken. Returnerar true om kontot
  44. * fanns (och kunde tas bort), annars false.
  45. */
  46. boolean removeAccount(int number) {
  47. for (BankAccount ba : accountList) {
  48. if (ba.getAccountNumber() == number) {
  49. accountList.remove(ba);
  50. return true;
  51. }
  52. }
  53. return false;
  54. }
  55.  
  56. /**
  57. * Returnerar en lista innehållande samtliga bankkonton i banken. Listan är
  58. * sorterad på kontoinnehavarnas namn.
  59. */
  60. ArrayList<BankAccount> getAllAccounts() {
  61. ArrayList<BankAccount> sortedList = sortAllAccounts();
  62. return sortedList;
  63. }
  64. ArrayList<BankAccount> sortAllAccounts() {
  65. ArrayList<BankAccount> copyList = accountList;
  66. /* kollar igenom alla listans element ( enligt j) en gång för varje element i listan
  67. * så att alla element blir jämförda */
  68. for( int i = 0; i < copyList.size()-1; i++) {
  69. /* kollar igenom listan för varje element j */
  70. for( int j = 0; j < copyList.size()-1; j++) {
  71. /* ifall namnet kommer före i alfabetet enligt compareToIgnoreCase returneras
  72. * 1 och if satsen utförs, annars går den vidare till nästa index*/
  73. if(copyList.get(i).getHolder().getName().compareToIgnoreCase(
  74. copyList.get(j+1).getHolder().getName())>0){
  75. BankAccount ba = copyList.get(i); // sparar elementet på index i
  76. copyList.remove(i); // tar bort det från sin plats i listan
  77. copyList.add(ba); // lägger till längst ner i listan
  78. j = 0; //ifall den hittar ett felsorterat elementbörjar den om högst uppe i listan igen
  79. //copyList.set(i+1, copyList.set(i, copyList.get(i)));
  80.  
  81. }
  82. }
  83.  
  84. }
  85. return copyList;
  86. }
  87. /**
  88. * Söker upp och returnerar bankkontot med kontonummer ’accountNumber’.
  89. * Returnerar null om inget sådant konto finns.
  90. */
  91. BankAccount findByNumber(int accountNumber) {
  92. for (BankAccount ba : accountList) {
  93. if (ba.getAccountNumber() == accountNumber) {
  94. return ba;
  95. }
  96. }
  97. return null;
  98. }
  99.  
  100. /**
  101. * Söker upp alla bankkonton som innehas av kunden med id-nummer ’idNr’. Kontona
  102. * returneras i en lista. Kunderna antas ha unika id-nummer.
  103. */
  104. ArrayList<BankAccount> findAccountsForHolder(long idNr) {
  105. ArrayList<BankAccount> bahelpList = new ArrayList<BankAccount>();
  106.  
  107. for (BankAccount ba : accountList) {
  108. if (ba.getHolder().getIdNr() == idNr) {
  109. bahelpList.add(ba);
  110. }
  111. }
  112. return bahelpList;
  113.  
  114. }
  115.  
  116. /**
  117. * Söker upp kunder utifrån en sökning på namn eller del av namn. Alla personer
  118. * vars namn innehåller strängen ’namePart’ inkluderas i resultatet, som
  119. * returneras som en lista. Samma person kan förekomma flera gånger i
  120. * resultatet. Sökningen är "case insensitive", det vill säga gör ingen skillnad
  121. * på stora och små bokstäver.
  122. */
  123. ArrayList<Customer> findByPartofName(String namePart) {
  124. ArrayList<Customer> chelpList = new ArrayList<Customer>();
  125. for(BankAccount ba : accountList) {
  126. if(ba.getHolder().getName().toLowerCase().contains(namePart.toLowerCase())) {
  127. chelpList.add(ba.getHolder());
  128. }
  129. }
  130. return chelpList;
  131. }
  132.  
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement