List의 가변,,,?

김도환·2022년 4월 14일
0

JAVA-BACKEND

목록 보기
1/6
post-thumbnail
		splitList = this.queryForModel(so,abcde00100_env.class);
		
		if (splitList.size() > 0) {
			if ("ABC111".equals(config_cd)) {


			} else {
				for (abcde00100 data : splitList) {
					
					String splitData = data.getCtrl_clas_cd().toString();
					
					if (splitData.length() > 11) {

						String splitDone = splitData.substring(13);
						if (splitDone.equals(this.getDrsCode())) {

							data.setCtrl_clas_cd(splitDone);
                            
   직장에서 처음 접해보는 알고리듬(?) 진짜 극초보 난이도의 알고리듬이다...
   하지만 나는 이 난이도에서도 반나절을 헤매고 아직까지도 진행중이다.
   
   여기서 깨닫게 된 몇 가지 이유를 서술하려 한다. 
   나중에 내 자신이 이 글을 보고 다시 깨닫길 바란다.
   
   일단, List객체는 '가변성'이라 굳이 새로 선언 안해줘도 된다.
   data.setCtrl_clas_cd(splitDone); 이 부분을 나는 처음에
   List<abcde00100> var = new ArrayList(); 
   var.add(splitData); 이런식으로 수백번을 쓰고 지웠다.
   이미 위에서 data라고 지정해놓은 List가 있고, '가변성'이라는 성질(?)로 인해
   다시 새로 선언할 필요가 없고 그대로 변환 시켜줘도 변경이 되지만 삭제하면 안된다.
   
   또, 한 가지
   ArrayList<String> aa = new ArrayList<String>(); 과
   List<String> aa = new ArrayList<String>();의 차이를 배웠다.
   위에 리스트는 인터페이스를 구현한 클래스를 직접 선언한 것이기 때문에 
   다른 인터페이스        하위 클래스들과 호환이 안되고, 아래의 리스트는 
   인터페이스 객체로 선언한거라 다른 하위 클래스와 호환이 된다.
   
   예를 들어서 List aa >> new LinkedList(aa) 이렇게 아래의 리스트는 변환 가능하다.
   그렇다. 나는 LinkedList가 뭔지 모른다. 그냥 그렇다고 한다.
profile
극초보 웹개발자

0개의 댓글