[JAVA] controller에서 나오는 결과 값의 변수명을 list가 아닌 seachList으로 넣고싶다.

문제사항 : 변수명을 list에서 searchList으로 바꿨을 뿐인데, 검색이 되지 않는다.

해결방안 : 콘솔창에서 Tap으로 입력하지 말고, 마우스로 커서를 가져다대보자

 

 

public ArrayList <Music> searchMusic(String keyword) {
		
		ArrayList <Music> searchList = new ArrayList<>();
		
		for(int i=0; i<list.size(); i++) {
			
			if(list.get(i).getTitle().contains(keyword)) {
			 // return는 한 개만 가져다 줄 수 있기 때문에 searchList에 값을 담고 한꺼번에 반환할 계획 ! 
				 searchList.add(list.get(i));
			}
			
		}
		
		return  searchList; // 텅 비어있는 상태로 리턴이 되거나, 뭐라도 담긴 상태로 리턴이 되거나 
		
	}

 

return된 값을 searchList로 설정했으니,  아래의 메소드에서도 searchList로 기술하고 싶었다. (== 주소값이 전달되기 때문에 사실 다른 변수명을 제시해도 무방하지만, 이해를 위해서 같은 변수명을 제시하고 싶었다) 

 

public void searchMusic() {
		
        System.out.println("\n ==== 특정 곡 검색 ==== ");
		
		System.out.print("검색할 곡의 키워드 : ");
		String keyword = sc.nextLine();
		
		// 검색 요청 ! == Controller 메소드 호출 ! //주소값이 돌아오기 때문에 이름이 꼭 똑같을 필요는 없다 ! 
		ArrayList <Music> searchList = mc.searchMusic(keyword);
			
		if(searchList.isEmpty()) {
			System.out.println( keyword + "에 대한 검색 결과가 없습니다");
		} else {
			for(int i=0; i<searchList.size(); i++) {
				System.out.println(searchList.get(i));
			} 
		}
		
		
		
	}

 

이상없이 프로그램 동작 되는 것 확인했다 ! 

 

댓글