일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 1924번 java
- 백준 1000번
- 자료구조 트리
- 힙정렬자바
- heap정렬
- 카카오기출
- java
- 자바
- 코테준비
- 카카오코딩테스트
- 백준 1000번 java
- 프렌즈4블록java
- 코딩테스트기출
- 공부정리
- 알고리즘
- heap
- 카카오1차
- 프로그래머스
- 객체프로그래밍이란
- Java heap
- 개발상식
- 백준 1924번
- 프렌즈4블록
- 카카오코테
- 객체프로그래밍
- 자료구조힙
- 백준
- 문자열포맷
- java method
- 자바문자열
- Today
- Total
목록개발/Java (16)
일단 시작해보는 블로그
요약 Comparable : 기본적인 정렬 기준으로 정렬. default = 오름차순이지만 내림차순도 있으며, 사전순으로 숫자크기순 등등이 이에 해당된다. @Override compareTo(Object o) -> this, o 비교 -> 오름차순이면 뒤에있는 o가 더 커야하므로 this > o 일 때 맞는거니까 양수 return! Comparator : 기본적인 정렬 기준 이외의 기준으로 정렬하고자 할 때 사용. 그러니까 사전순이 아닌, 여러 조건이 있을 경우라던지, 문자열의 길이 순, 객체내에 접근해서 값을 비교해야한다던지 등등 일 때 사용한다. @Override compare(Object o1, Object o2) -> o1, o2비교 -> 오름차순이면 뒤에있는 o2가 더 커야하므로 o1 < o2 ..
Set Interface 1. 데이터 중복 No! 데이터를 중복해서 저장할 수 없다. 2. 저장 순서가 보장되지 않음. index로 관리하는 것이 아니기 때문 . 3. Iterator의 객체(반복자)를 통해 반복문을 돌릴 수 있다. 이것도 인덱스로 관리하는 것이 아니기 때문. 대표적으로 HashSet, TreeSet, LinkedHashSet 등이 있다. HashSet 전형적인 Set 인터페이스의 특성을 갖추고 있다. 데이터 중복x, 입력한 순서대로 저장되지 않는다. package hash; import java.util.HashSet; import java.util.Set; // HashSet은 순서가 따로 없고 중복되지 않는다. if 중복 -> false를 반환한다. public class HashS..
Iterator는 자바의 Collection framework에서 Collection에 저장되어 있는 요소들을 읽어오는 방법을 표준화한 것이다. List나 Set인터페이스를 구현하는 컬렉션은 iterator()가 컬렉션의 특징에 맞게 설계되어있다. Iterator는 인터페이스이다. public interface Iterator{ boolean hasNext(); Object next(); void remove(); } 1. boolean hasNext() : 읽어 올 요소가 남아있는지 확인하는 메소드 2. Object next() : 읽어 올 요소가 남아있는지 확인하는 메소드 3. void remove() : next()로 읽어 온 요소를 삭제한다. next()호출 후, remove()를 사용한다.
Hashset은 중복을 허용하지 않고 순서가 없다. 만약 중복을 허용하지 않는 순서가 있는 집합을 만들고 싶다면 LinkedHashSet을 사용하면 된다. package hash; import java.util.HashSet; import java.util.Iterator; public class HashSet_Union_Inter { public static void main(String[] args) { HashSet SetA = new HashSet(); // [1, 2, 3, 4, 5] HashSet SetB = new HashSet(); // [1, 2, 4, 5, 6] HashSet SetUnion = new HashSet(); // [1, 2, 3, 4, 5, 6] HashSet SetInt..
문자열로 정의한 정규표현식은 사용되기 전에 반드시 Pattern 클래스의 인스턴스로 컴파일 되어야한다. 컴파일된 패턴은 Matcher 객체를 만드는데 사용되며, Matcher 객체는 임의의 입력 문자열이 패턴에 부합되는지 여부를 판가름하는 기능을 담당한다. 또한, Pattern객체들은 비상태 유지 객체들이기 때문에 여러개의 Matcher 객체들이 공유할 수 있다. 목표> String str = "나는 123456788입니다."; 다음 문자열에서 숫자만 추출하고 싶어요! 1. Pattern p = Pattern.compile("([0-9])+"); 여기서 [0-9]라고 하면 숫자 한글자씩 나온다. ([]이거 자체가 범위를 쓸 수 있지만 한 글자를 의미하는 것이라서 그렇다.) 원하는 답(123456788)을..
정규표현식은 특정한 조건으로 문자를 검색하거나 바꿀 때 사용된다. 정규 표현식의 예 예를들어 다음과 같은 문자열이 있다고 보면, String str = "안녕하세요. 저는 12345567입니다."; //너무 대충썼.. 이 문자열에서 숫자만 남기고 다 지우고 싶을 때 다음과 같은 식을 쓰면 된다. String result = str.replaceAll("[^0-9]", ""); 여기서 [^0-9]가 정규표현식인데, [] -> 하나의 문자를 의미한다고 보면 편한데, [0-9]라면 0-9숫자, [a-z]는 소문자, [A-Z]는 대문자, [a-zA-Z]는 대소문자 중, 하나 이렇게 생각하면 된다. 0-9 -> 위에서 설명했듯, 범위이다. ^ -> 위의 표현식[^0-9]은 괄호 안에 ^ 표시가 있는데, 이는 반대..
1. 기본 데이터 타입(primitive data types) 정수 : byte, short, int, long 부동 소수점 타입 (실수) : float, double 부울 데이터 타입 : boolean 문자 데이터 타입 : char 1 ) 정수와 부동 소수점 1byte = 8bit, 즉 byte는 0과 1을 표현하는 1비트의 8자리이다. 1byte는 128가지(2^8)의 다른 데이터를 가질 수 있다. 프로그램을 설계할 때 메모리 공간이 낭비되지 않도록 적절한 크기의 변수를 선택하는데 주의해야한다. 특정 변수의 값 범위가 확실하지 않을 경우에는 충분한 크기의 공간을 제공해야 한다. 2) 명시적 데이터 값 (literal) java의 정수 리터럴은 int 타입이다. long 타입을 표현하기 위해서는 숫자 ..
자료구조나 변수를 복사할 때는 두가지 종류가 있다. 하나는 참조 값을 할당하는 것 다른 하나는 값을 할당하는 것. 참조 값을 할당하는 것을 얕은 복사라고 하고, 값을 할당하는 것을 깊은 복사라고 한다. 무슨 복사인지는 의미없지만 상황에 따라서 쓰이는 경우가 있으니 다음 예제로 익혀봤다. 얕은 복사 : 참조 값만 할당 (destination = source) package data_structure; import java.util.ArrayList; class Fruit { private String name; private int count; public String getName(){ return name; } public void setName(String name){ this.name = name;..