Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- public class Bank {
- BankAccount ba;
- Customer c;
- ArrayList<BankAccount> accountList;
- /** Skapar en ny bank utan konton. */
- Bank() {
- accountList = new ArrayList<BankAccount>();
- }
- /**
- * Öppna ett nytt konto i banken. Om det redan finns en kontoinnehavare med de
- * givna uppgifterna ska inte en ny Customer skapas, utan istället den
- * befintliga användas. Det nya kontonumret returneras.
- */
- long addAccount(String holderName, long idNr) {
- for(BankAccount ba : accountList) {
- if(ba.getHolder().getName().equalsIgnoreCase(holderName) && ba.getHolder().getIdNr() == idNr) {
- accountList.add(new BankAccount(ba.getHolder()));
- return accountList.get(accountList.size()-1).getAccountNumber();
- }
- }
- accountList.add(new BankAccount(holderName, idNr));
- return accountList.get(accountList.size()-1).getAccountNumber();
- }
- /**
- * Returnerar den kontoinnehavaren som har det givna id-numret, eller null om
- * ingen sådan finns.
- */
- Customer findHolder(long idNr) {
- for (BankAccount ba : accountList) {
- if (ba.getHolder().getIdNr() == idNr) {
- return ba.getHolder();
- }
- }
- return null;
- }
- /**
- * Tar bort konto med nummer ’number’ från banken. Returnerar true om kontot
- * fanns (och kunde tas bort), annars false.
- */
- boolean removeAccount(int number) {
- for (BankAccount ba : accountList) {
- if (ba.getAccountNumber() == number) {
- accountList.remove(ba);
- return true;
- }
- }
- return false;
- }
- /**
- * Returnerar en lista innehållande samtliga bankkonton i banken. Listan är
- * sorterad på kontoinnehavarnas namn.
- */
- ArrayList<BankAccount> getAllAccounts() {
- ArrayList<BankAccount> sortedList = sortAllAccounts();
- return sortedList;
- }
- ArrayList<BankAccount> sortAllAccounts() {
- ArrayList<BankAccount> copyList = accountList;
- /* kollar igenom alla listans element ( enligt j) en gång för varje element i listan
- * så att alla element blir jämförda */
- for( int i = 0; i < copyList.size()-1; i++) {
- /* kollar igenom listan för varje element j */
- for( int j = 0; j < copyList.size()-1; j++) {
- /* ifall namnet kommer före i alfabetet enligt compareToIgnoreCase returneras
- * 1 och if satsen utförs, annars går den vidare till nästa index*/
- if(copyList.get(i).getHolder().getName().compareToIgnoreCase(
- copyList.get(j+1).getHolder().getName())>0){
- BankAccount ba = copyList.get(i); // sparar elementet på index i
- copyList.remove(i); // tar bort det från sin plats i listan
- copyList.add(ba); // lägger till längst ner i listan
- j = 0; //ifall den hittar ett felsorterat elementbörjar den om högst uppe i listan igen
- //copyList.set(i+1, copyList.set(i, copyList.get(i)));
- }
- }
- }
- return copyList;
- }
- /**
- * Söker upp och returnerar bankkontot med kontonummer ’accountNumber’.
- * Returnerar null om inget sådant konto finns.
- */
- BankAccount findByNumber(int accountNumber) {
- for (BankAccount ba : accountList) {
- if (ba.getAccountNumber() == accountNumber) {
- return ba;
- }
- }
- return null;
- }
- /**
- * Söker upp alla bankkonton som innehas av kunden med id-nummer ’idNr’. Kontona
- * returneras i en lista. Kunderna antas ha unika id-nummer.
- */
- ArrayList<BankAccount> findAccountsForHolder(long idNr) {
- ArrayList<BankAccount> bahelpList = new ArrayList<BankAccount>();
- for (BankAccount ba : accountList) {
- if (ba.getHolder().getIdNr() == idNr) {
- bahelpList.add(ba);
- }
- }
- return bahelpList;
- }
- /**
- * Söker upp kunder utifrån en sökning på namn eller del av namn. Alla personer
- * vars namn innehåller strängen ’namePart’ inkluderas i resultatet, som
- * returneras som en lista. Samma person kan förekomma flera gånger i
- * resultatet. Sökningen är "case insensitive", det vill säga gör ingen skillnad
- * på stora och små bokstäver.
- */
- ArrayList<Customer> findByPartofName(String namePart) {
- ArrayList<Customer> chelpList = new ArrayList<Customer>();
- for(BankAccount ba : accountList) {
- if(ba.getHolder().getName().toLowerCase().contains(namePart.toLowerCase())) {
- chelpList.add(ba.getHolder());
- }
- }
- return chelpList;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement