일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 닷넷
- AnimationController
- listview
- 오류
- 마우이
- Maui
- 플러터
- 깃허브
- Flutter
- GitHub
- 리엑트
- 자바스크립트
- MS-SQL
- 바인딩
- React JS
- 파이어베이스
- spring boot
- page
- Firebase
- JavaScript
- 함수
- Binding
- .NET
- MSSQL
- db
- HTML
- Animation
- 애니메이션
- MVVM
- typescript
Archives
- Today
- Total
개발노트
[Java] 자료구조 형 변환, 기본 메소드 본문
반응형
Java를 사용하다보니 자료구조 형변환에 시간을 많이 쓰는 것같다.
기존에 알고리즘 공부를 Python으로 했기때문에 데이터형은 대부분 Array나 Dictionary 정도로 풀 수 있었지만...
Java는 입력값의 데이터형 그리고, return 하는 값의 데이터형을 신경써야했다.
Java로 코테를 준비하면서 피로했던 부분들은 아래와 같다.
- Array 크기할당을 자동으로 해주지 않기 때문에 삽입, 삭제가 불가능하여 동적 할당이 가능한 List로 꼭 변환해서 처리해야한다.
- 대부분 return 값은 List가 아니라 Array라서 다시 List를 Array로 변환시켜야하는 부분이 피로감을 주었다.
예를 들면...
1) Input이 String형 "123124" 으로 받고 (String형 이지만 그 값이 의미하는것은 Integer형임..)
2) char[] c = str.toCharArray() 로 Array로 만든 다음
3) Arrays.asList(c)로 List<Integer> 로 변환하여, add(5) remove(0) 과정을 거쳐서 그 list item들끼리 곱함
4) 그 결과 값을 return 240과 같이 Integer형으로 리턴하는 경우
이런 경우 형변환을 여러번 해야한다. - 삽입하는 것 보더라도 add(),append(),put(),push() 등 통일되지 않은 메소드명으로 혼란을 주었다.
아래 표와 같이 실수하면서 배운 것들을 표로 정리해보았다.
(단기간에 전부 외울 수는 없기 때문에 Collections.reverse(list)와 같이 for문으로 i-- 하면서 구현가능한 것들은 우선 제외하였다. )
간단한 형 변환은 String.valueOf(123) // "123" 이나 Integer.parseInt("123"), Integer.valueOf("123") // 123 같은 걸로 해결하자
Array는 형변환없이 sort가 가능하다.
- Arrays.sort(array);
하지만.! Array에 요소를 추가,삭제, 수정 하려면 List로 변환이 필요하다.
- List<String> list = Arrays.asList(array); //String 배열을 List로 변환하는 경우
- List<Integer> list = Arrays.asList(array); //Integer 배열을 List로 변환하는 경우
- list.add("A");
- list.add("B");
- list.remove(0); //0은 index
- list.remove(1);
- list.get(0);
- list.set(0) = 1;
- list.sort(); //List는 list.sort()로 간단히 가능, Array는 Arrays.sort(array)로 가능
2-2. 요소를 다 집어넣고 다시 Array로 형변환을 하면된다.
- String[] array = list.toArray(new String[0]) //String 배열로 변환할 경우
- Integer[] array = list.toArray(new Integer[0]) //Integer 배열로 변환할 경우
반응형
'알고리즘, PS' 카테고리의 다른 글
[Python] 탐색 문제 리마인드(그래프, 미로, BFS,DFS ) (0) | 2024.05.30 |
---|---|
[Python] 코테 리마인드하기 (0) | 2024.05.23 |
[Java] 코딩테스트 문제 리스트 (with 풀면서 배운점) (0) | 2023.08.16 |
[Java] 요약 정리 (0) | 2023.08.13 |
[Python] 코딩테스트 문제 리스트 (with 풀면서 배운점) (0) | 2023.08.10 |
Comments