TIL(2022-11-25) Java 미니프로젝트

C one·2022년 11월 28일
0

어제에 이어서 기능을 구현하였다

어려웠던 부분

@Override
    public void getTransaction(String accountNum, String owner, int password) {
        if(TransactionalInformationList.isEmpty()){
            System.out.println("해당 계좌에는 거래내역이 존재하지 않습니다.");
        }else{
            for (int i=0 ; i < TransactionalInformationList.size(); i++) {
                TransactionalInformation information = TransactionalInformationList.get(i);
                if(information.getAccountNum().equals(accountNum)){
                    System.out.println("거래일자 : " + information.getDate() + " | 거래시간 : " +information.getTime() + " | 계좌번호 : " + information.getAccountNum() + " | 입금/출금 : " + information.getAvailability() + " | 거래금액 : " + information.getTransactionAmount()+"원");
                    System.out.println("------------------------------------------------------------------------------------------------------");
                }
            }
        }
    }

만약 거래내역이 등록되지 않아 거래내역이 존재하지 않을경우 메세지를 출력하도록 수정하였다

if로 거래내역 list가 비어있는걸 확인하고, 참일때 거짓일때 작성해야 하는데

첫번째로, list가 아니라 거래내역 하나가 비어있는지 확인하게 메소드를 작성해서 오류가 발생했고, 수정하였다

두번째로, 비어있는지 확인하는 방법에대해 구글에 검색해보았는데,
세가지 방법이 있었다 ( size() 메서드 / isEmpty() 메서드 / null로 초기화 )

size() 메서드 : 크기가 0보다 크면 ArrayList에 요소가 존재한다는 의미이므로
비어 있지 않고 크기가 0이면 요소가 없으므로 비어 있음을 의미합니다

isEmpty() 메서드 : ArrayList의 size() 메서드를 내부적으로 호출합니다
 isEmpty() 메서드는 ArrayList에 요소가 없으면 true를 반환하고 그렇지 않으면 false를 반환합니다
 
 null : 
 비어 있는 ArrayList는 객체는 존재하지만, 요소가 없는 경우를 말합니다
 하지만, null로 초기화하면 힙 메모리에 ArrayList 객체가 없다는 것을 의미합니다.
 size(), isEmpty() 메서드를 사용하여 null로 초기화된 ArrayList를 체크하면 
 NullPointerException 예외가 발생합니다!
 따라서, ArrayList가 비어 있는지 확인해기 위해서는 null을 반드시 확인해야 합니다.
 

위의 코드는 isEmpty()메서드만을 활용하여 작성하였는데, null을 확인하는 과정을 추가해야겟다

profile
🌽

0개의 댓글