기본 문법/[JAVA](10)
-
[JAVA] 정규식 표현
개요 문자열에 대한 문제를 풀게 되었을 때 문자의 반복적인 Pattern나 Parsing을 해주었을 때 코드가 난잡해지는 경우가 많다. // 카카오 문제 ) 신규 아이디 추천 _ 정규식을 적용한 코드 public static String solution(String new_id) { String answer = ""; String temp = new_id.toLowerCase(); temp = temp.replaceAll("[^-_.a-z0-9]",""); temp = temp.replaceAll("[.]{2,}","."); temp = temp.replaceAll("^[.]|[.]$",""); if(temp.equals("")) temp+="a"; if(temp.length() >=16){ temp =..
2021.09.25 -
[JAVA] Stream
개요 Java 문법에 대해서 조금 더 공부하려고자 한다.. 이유는 간단하다. 코딩 테스트를 준비하는데 Programmers에 들어가봤더니 코드양이 압도적으로 차 이가 났었다. 물론 내 직관력이 조금 떨어지는 부분은 보완 할 수 있었겠지만 자바의 내장 객체들을 제대로 알고 쓰기 위해 먼저 Stream이라는 객체를 공부하고자 한다. // 프로그래머스의 대단한 분의 코드... ( Programmers/Level2/해쉬/위장 1등 코드) import java.util.*; import static java.util.stream.Collectors.*; class Solution { public int solution(String[][] clothes) { return Arrays.stream(clothes) ...
2020.10.28 -
[JAVA] 지네릭스
지네릭스를 왜 쓸까? 먼저 우리는 지네릭스를 쓰지 않는 경우를 생각해보자. class Box{ Object item; Box(Object item){ this.item = item; } Object getItem() { return item; } } public static void main(String[] args) { Box box = new Box("asdfxzcv"); // String temp = box.getItem();// 에러가 날 것이다. String temp = (String) box.getItem(); // 형변환을 해주고 타입체크를 해줘야댐 } 먼저 Object는 최상위 클래스이다. 그렇기 때문에 생성자를 통해서 String이나 int로 item을 만들어도 에러가 나지 않을 것이다...
2020.07.07 -
[JAVA] Set - TreeSet
TreeSet은 Set Interface를 구현한 컬렉션 중복된 요소를 저장하지 않는다. 저장순서를 유지 않는다. 자체적인 저장방식에 따라 순서가 결정이 된다. TreeSet이란? 이진 검색 트리 ( Binary search tree ) 라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스이다. 이진 검색 트리의 성능을 향상시킨 레드-블랙 트리(Red-Black Tree) 로 구현이 되있다. 이진 트리란? 여러 개의 노드가 서로 연결된 구조로, 각 노드에 최대 2개의 노드를 연결 할 수 있는.. 부모 - 자식 관계는 상대적인 것이며 하나의 부모 노드는 최대 두 개의 자식 노드와 연결될 수 있다. 이 상대적인 것은 Comparable을 구현하거나 Comparator를 제공해서 두 노드를 비교할 방법을 알..
2020.06.16 -
[JAVA] Set - HashSet
HashSet은 Set Interface를 구현한 가장 대표적인 컬렉션 중복된 요소를 저장하지 않는다. 저장순서를 유지 않는다. 자체적인 저장방식에 따라 순서가 결정이 된다. HashSet의 주요 생성자 및 메소드 생성자 또는 메서드 설명 boolean add 새로운 객체를 생성한다. boolean addAll(Collection c) 주어진 컬렉션에 모든 객체를 추가 void clear() 저장된 객체를 모두 삭제 boolean contains(Object o) 지정된 객체를 포함하고 있는지 알려준다. boolean remove(Object o) 지정된 객체를 HashSet에서 삭제한다. LinkedHashSet 중복을 제거하는 동시에 저장한 순서를 유지하고 싶다면 HashSet대신 LinkedHash..
2020.06.14 -
[JAVA] Iterator
Iterator이란? Iterator는 자바의 컬렉션 프레임웍에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법을 표준화 하였는데 그 중 하나가 Iterator이다. Iterator은 Interface로 어떤 메소드가 있는지 확인해보자. 메소드 설명 boolean hasNext(); 읽어 올 요소가 남아있는지 확인하는 메소드이다. Object next(); 다음 요소를 읽어 온다. 호출하기 전에 hasNext()를 호출하는게 안전 void remove(); next()로 읽어 온 요소를 삭제한다. next()를 호출한 다음에 remove()를 호출해야 한다. ListIterator Iterator은 단방향으로만 이동할 수 있는 데 반해 ListIterator은 양방향으로의 컬렉션 요소 접근이 가능하다.
2020.06.14