Java
-
Java 제네릭(Generic) 정리(3)_generic의 extends, super, wildcardJava 2023. 8. 11. 20:06
generic의 extends, super, wildcard extends 예시 : T와 T의 자손 타입만 가능 (K는 들어오는 타입으로 지정 됨) - 상한 경계 상한 경계인 extends 뒤에 오는 타입이 최상위 타입으로 한계가 정해지는 것이다. Integer, Long, Byte, Double, Float, Short 같은 수를 표현하는 래퍼 클래스만으로 제한하고 싶은 경우 Number 클래스를 상속 class A {} class B extends A {} class D extends A {} class C extends B {} class E extends D {} // B와 C타입만 올 수 있음 // E타입만 올 수 있음 // A, B, C, D, E 타입이 올 수 있음 /* Integer, Lo..
-
Java 제네릭(Generic) 정리(2)_static을 이용한 GenericJava 2023. 8. 11. 19:52
static을 이용한 제네릭 프로그래밍 static으로 선언된 것들은 객체가 생성되기 전에 메모리에 먼저 올라가기 때문에 클래스 이름을 통해 바로 사용이 가능하지만, generic type을 우선적으로 선언해주어야한다. static으로 선언된 generic 메소드는 class의 타입과는 독립적이다. 예시 class ClassName { /* // error static E genericMethodError(E o) { return o; } */ // generic 메소드의 E타입은 generic 클래스의 E타입과 독립적이다. static E genericMethod(E o) { return o; } } class Main { public static void main(String[] args) { // ..
-
Java 제네릭(Generic) 정리(1)Java 2023. 8. 11. 19:42
제네릭(Generic) 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 한다. 객체 객체명 = new 객체(); 형식으로 사용 generic은 클래스 내부에서 지정하는 것이 아니라 외부에서 사용자에 의해 지정되는 것 특정 타입을 지정하는 것이 아니라, 필요에 의해 지정할 수 있도록 하는 일반(generic) 타입을 말한다. ArrayList list1 = new ArrayList(); ArrayList list2 = new ArrayList(); /* 이 처럼 타입에 String, Integer를 다 사용하고 싶을때, String에 대한 클래스, Integer에 대한 클래스 등 하나하나 타입에 따라 만드는 것이 비효율적이다. 그래서 generic을 사용하는 것이다. ..
-
Java 배열과 list를 이용해 2차원 구현Java 2023. 8. 11. 19:27
2차원 배열 // 형식 int[][] intArr = new int[][]; * 2차원 배열 구현 import java.util.Arrays; public class Main { public static void main(String[] args) { int[][] intArr = new int[2][2]; int intValue = 0; for (int i = 0; i < intArr.length; i++) { for (int j = 0; j < intArr[i].length; j++) { intArr[i][j] = intValue; ++intValue; } } // 1차원 배열 출력하는 법 // System.out.println(Arrays.toString(intArr)); // 2차원 배열 출력하는..
-
Java 날짜 관련 메소드 정리 (SimpleDateFormat, parse(), format())Java 2023. 8. 11. 19:23
Date 클래스를 사용하다보면, 원하는 날짜 형식을 얻기 어렵다. 그래서 원하는 날짜 포맷을 얻기 위해서는 java.text.SimpleDateFormat 클래스를 이용하는 경우가 있다. * format() date 형식의 데이터를 문자열로 전환해준다. // 사용법 Date today = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String dateStr = dateFormat.format(today); * parse() 파라미터로 받은 문자열을 date 타입의 객체로 전환해준다. // 사용법 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd")..
-
자바 JSON으로 받은 데이터를 Map, List로 변환하기Java 2023. 5. 13. 15:55
API 통신을 하면서 응답(response)받을 때 대부분 JSON으로 받는 분들이 많을 것이라 생각합니다. JSON은 Map과 기본 형태가 동일하기 때문에 편하게 사용할 수 있을 것입니다. 그렇다면 JSON을 Map이나 List로 변환시키는 방법을 기술하겠습니다. 형변환 순서 * JSON dependency를 추가해야지 JSON 타입을 다룰 수 있다. 1. JSON을 받아서 String으로 변수의 타입을 바꿔준다. 2. String을 기준으로 Map이나 List로 형 변환해준다. public class Ex { public static void main(String[] args) { String str = JsonObject.toString(); // JSON -> String -> Map Map ma..
-
자바 compareTo 문자, 숫자 비교Java 2023. 4. 26. 20:42
compareTo - 2개의 값을 비교해서 정수를 반환해준다. 1. 정수 비교 int a = 0; int b = 0; a.compareTo(b); // 결과 예시 // 1 : a가 크다 // 0 : a와 b가 같다. // -1 : a가 작다. 2. 문자 비교 - 문자가 같은 위치에 포함하고 있으면 문자열의 길이 차이를 반환 - 같은 위치에 포함하고 있지 않으면 아스키값으로 비교해 차이를 반환 String a = "asdf"; String b = "asd"; String c = "b"; a.compareTo(b); // 1 (4 - 3) a.compareTo(c); // -1 (97 - 98) 3. 활용 - 알파벳 비교를 할 때 사용한다. String a = "A"; String b = "B"; int c..
-
자바 Arrays.sort 사용하기(String[], int[] Integer[]) / Collections.reverseOrder()Java 2023. 4. 23. 20:47
배열을 오름차순, 내림차순으로 정렬하고 싶을 때, 반복문을 코드를 작성해 정렬하는 방법이 있을 수 있습니다. 하지만, java.util.Arrays 정렬을 이용하는 방법이 더 간단하다고 생각합니다. 그러면, Arrays.sort를 이용해 배열 정렬하는 법과 주의점을 작성해보도록 하겠습니다. - 오름차순 Arrays.sort()를 이용하면, 간편하게 배열을 오름차순으로 정렬시킬 수 있습니다. - 내림차순 Arrays.sort()와 Collections.reverseOrder()를 이용하면, 간편하게 배열을 내름차순으로 정렬시킬 수 있습니다. - 관련 에러 Collections.reverseOrder()를 이용할 때, String[]은 컴파일 에러가 나지 않습니다. 하지만 Integer가 아닌 int 배열을..