Java/Grammer

    Simple Data Structure (2) - List/Set/Map

    앞에서는 Collection을 포함한 공통 메서드들에 대해 다루었습니다. 이번 시간에는 가장 많이 사용되는 List/Set을 구현한 자료구조에 대해 알아보겠습니다. 일반적인 데이터 저장은 ArrayList 리스트 인터페이스를 구현한 대표적인 자료구조로 내부적으론 배열로 구성되어 있습니다. 또한 리스트를 구현했기 때문에 자료를 순서대로 저장하고 중복을 허용하는 특징을 가지고 있습니다. List list1 = new ArrayList(); List list2 = new ArrayList(Arrays.asList(1,2,3,2));//Parameter Collection //원소 추가 list1.add(0); System.out.println(list1); //[0] //원소들 추가 list1.addAll(A..

    Simple Data Structure (1) - 공통 메서드

    사실 우리가 흔히 사용하는 ArrayList 이외에 자료구조들은 정말 많습니다. 그러나 이들은 ArrayList만큼 자주 사용되지 않습니다. 단편적으로 데이터를 중간에 삽입이나 삭제하는 경우 ArrayList보다 LinkedList가 훨씬 빠릅니다. 그러나 제가 겪은 실무 환경에서는 적어도 이러한 상황 자체가 잘 나타나지 않습니다. 자료구조를 제대로 알고 활용한다면 금상첨화지만 그럴만한 시간이 없다면 대표 자료구조 하나라도 제대로 아는 것이 중요하다 생각합니다. 그런 면에서 간단하면서도 꼭 필요한 자료구조들을 소개하는 포스팅을 준비해봤습니다. Object Class의 공통 메서드 모든 클래스는 Object 클래스를 상속받습니다. 따라서 Object 클래스가 가지고 있는 메서드들 또한 다른 클래스들도 사용..

    String Class (3) - 정규표현식

    정규표현식이란? 정규표현식은 메타문자를 활용해서 특정 조건에 맞는 문자열을 포현하는 식입니다. 이것이 왜 필요하냐? 간단한 예시로 간단한 이메일형식의 문자열을 나타낸다면 정규표현식으로 \\\\w+@\\\\w+\\\\.\\\\w+와 같이 나타낼수 있습니다. 그리고 이를 조건으로 활용해서 문자열 내에 이메일만 존재하는지도 체크할수도 있죠. 정규표현식이 없다면 꽤나 복잡한 과정을 거쳐 구했을 것입니다. 문자 클래스 문자 클래스는 [] 안에 문자를 넣어 사용합니다. 정확한 의미는 “대괄호 안에 있는 문자 중 하나”를 의미합니다. 예시는 다음과 같습니다. String regex = "[hi]" //h, i 중 하나 String regex = "[^hi]" //h, i 를 제외한 문자 중 하나 String rege..

    String Class (2) - 주요 메서드

    이번 게시글에선 주로 사용하는 문자열 관련 메서드를 알아봅시다. 주의할 점은 String 객체는 불변이기 때문에 (Strring Class (1) - String Pool과 Immutable 참고) 해당 메서드들이 객체가 가지고 있는 값을 변경할 수 없다는 점을 알아두셔야 합니다. 문자열과 숫자 간 형 변환 우선 형변환부터 알아보겠습니다. 여기서 알아볼 형변환은 숫자와 문자열 간 형 변환입니다. //int => String int number1 = 0; String text1 = String.valueOf(number1); System.out.println(text1); //0 //String => int String text2A = "10"; String text2B = "hello"; int numb..

    String Class (1) - Immutable과 StringBuilder/StringBuffer

    String Pool과 Immutable String은 객체입니다. 원시타입처럼 사용하지만 실제론 new를 통해 생성이 가능한 객체입니다. 그렇다면 {} 사용한 방식과는 차이가 무엇일까요? 코드를 통해 알아보겠습니다. public static void main(String[] args) { String text1 = "hello"; String text2 = "hello"; String text3 = new String("hello"); String text4 = new String("hello"); System.out.println(text1 == text2); //true System.out.println(text3 == text4); //false } 위와 같이 {}를 사용한 String 객체들은 ..

    추상클래스와 인터페이스의 차이

    ( 2022.05.15 수정 - 내용 추가와 글 서식 변경 ) 자바8에서 람다에 대한 내용이 추가됨에 따라 인터페이스에서 메서드를 구현할수 있게되었습니다. 이전에는 추상클래스와 인터페이스의 주요 차이점은 구현과 상속이었습니다. 하지만 이제 구현까지 인터페이스에서 가능해짐에 따라 이 둘의 경계가 모호해졌습니다. 그렇다면 차이점은 무엇일까요? 인터페이스와 추상메서드의 공통점 dafult 키워드를 사용하면 인터페이스 안에서 필드 사용과 메서드를 구현할 수 있게 되었습니다. public interface HelloInterface { String text = "hello"; default void sayHello() { System.out.println(text); } } public class People i..