컬렉션 프레임워크란? 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것 인터페이스(interface)를 사용하여 구현 컬렉션 프레임워크 주요 인터페이스 컬렉션 프레임워크에서는 데이터를 저장하는 자료 구조에 따라 List 인터페이스, Set 인터페이스, Map 인터페이스로 구분되어 있으며, List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받지만, 구조상의 차이로 인해 Map 인터페이스는 별도로 정의 List 저장된 요소들의 순서가 보장되고 데이터 중복이 가능하며 인덱스(index) 번호에 의해 정렬됩니다. List..
지네릭스란(Generics)란? 다양한 타입의 객체를 다루는 메서드, 컬렉션에 객체를 제한하는 기능 특정 메서드나 컬렉션에 들어가는 자료형을 제한하는 것이다. 지네릭스의 필요성 String 객체만 들어가길 원하는 ArrayList가 있다고 가정 시 여러가지 문제점 있다. public static void main(String[] args){ List strList = new ArrayList(); } 컴파일러가 실행(런타임) 전에 확인할 때는 문제가 없다고 했지만, 런타임 시 다음과 같이 에러 발생 public static void main(String[] args) { List strList = new ArrayList(); strList.add(10); String s1 = (String)strLis..
열거형 ? - 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 유용. - 열거형이 갖는 값 + 타입까지 관리 - 상수 값 변경 시 다시 Compile할 필요가 없다. - 열거형 상수 하나하나가 객체이다. class Card{ // 클래스 변수 // final : 상수 static final int CLOVER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int SPADE = 3; static final int TWO = 0; static final int THREE = 1; static final int FOUR = 2; } class CardEnum{ enum Kind {CLOV..
Arrays 클래스 배열을 다루기 위한 유용한 메서드들을 제공한다. Arrays 클래스 모든 메서드는 static 메서드이다 [배열 복사] - copyOf() / copyOfRange() copyOf()는 전체 배열, copyOfRange()는 일부를 복사해서 배열로 반환한다. copyOf(복사할 배열, 갯수) 👉 0번부터 갯수만큼 복사하되 크기를 넘으면 기본값으로 초기화한다. copyOfRange(복사할 배열, 시작위치, 끝 위치-1) 👉 **지정된 범위의 끝은 포함하지 않는다.** [배열채우기] - fill() / setAll() fill(arr, 값) : 모든요소를 지정한 값으로 채운다. setAll(arr, 함수형 인터페이스) : 배열을 채우기 위한 Functional Interface를 매개변수..
프로그램 오류? 프로그램이 실행 중 어떠한 원인으로 인하여 오작동하거나 비정상 종료 될 시 이와같은 결과를 초래하게 만드는 원인을 프로그램 에러 또는 오류라 한다. 컴파일 에러 : 컴파일 시점에서 발생하는 에러 런타임 에러 : 프로그램이 실행하는 중 발생하는 에러 논리적 에러 : 정상실행은 되지만, 예상과 다르게 동작하는 에러 에러 , 예외 ? 에러 : 프로그램 코드 레벨에서 수습할 수 없는 심각한 오류 예외 : 프로그램 코드 레벨에서 수습할 수 있는 경미한 오류 예외 클래스 계층구조도 ? 다음과 같이 여러가지 예외처리를 위한 예외클래스 계층구조를 확인해 볼 수 있다. 이때, 우리 코드 상에서 잡을 수 있는 오류인 예외는 Exception(=checked예외)을 최상위 부모로하여 RuntimeExceti..
최근 항해99 기본 언어 주차 -> 프로그래밍 기초 주차 2일차를 보내고 있다. 나의 경우 달리기 반을 선택했는데, 해당 반은 프로그래머스 1단계 7문제 푸는 것을 기준으로 하고 있다. 그러다보니 하루종일 계속 문제를 풀게되고 추가적으로 백준 등에서도 오늘 풀면서 배운 부분들이나 가벼운 문제들을 추가적으로 풀면서 기존에 갖고 있던 자바 문법에 대한 지식이나 응용되는 부분들을 자연스럽게 상기시켜야 하는 경우들이 빈번했다. 그 중 문자열 요소들을 다양한 형태로 처리해야하는 경우도 많았다. 그러다보니 자연스레 String.toCharArray()를 빈번하게 사용했다. 그러던 중 같은 동료가 푼 알고리즘 풀이를 보고 Character Class라는 것이 있는 것을 알게 되어서 Java 11 Docs를 한번씩 훑..