array in java

array in java
Photo by Michiel Leunens / Unsplash

배열은 기본형 배열과 참조형 배열로 나뉜다. 기본형 배열이란 boolean, byte, short, char, int, long, float, double 타입의 변수를 여러 개 선언할 필요가 있을 때 사용한다.

기본형 배열

기본형타입[] 변수명;
기본형타입 변수명[];

public class Array01{
  public static void main(String[] args){
    int[] arr1;
    int arr2[];
    int arr3[];

    arr1 = new int[5];
    arr2 = new int[5];
    arr3 = new int[0];
    }
}

두 가지 방식으로 선언이 가능하다. 위에 것들은 배열을 참조할 수 있는 변수이다. 해놓고 아무것도 안하면 null을 가리키고 있어서 nullpointexception이 뜬다. 반드시 초기화를 해줘야 한다. 그래서 밑에 것을 해준다. instance를 만들어주는 과정이다.

조금 특이한 것이 마지막에 arr3이다. 길이가 0인 배열을 만들 수도 있는 것으로 보인다.

public class Array2{
  public static void main(String[] args){
    int[] arr1, arr2;
    int arr3[], arr4;

여기서 배열이 아닌 것은 무엇일까? arr4는 배열이 아니다. 선언하는 방식에 대해서 잘 기억을 해놓아야한다.

초기값

public class Array3{
  public static void main(String[] args){
    int[] array1 = new int[5];
    array1[0] = 1;
    array1[1] = 2;
    array1[2] = 3;
    array1[3] = 4;
    array1[4] = 5;

    int[] array2 = new int[]{1,2,3,4,5};
    int[] array3 = {1,2,3,4,5};

array1,2,3 세 개의 배열 선언 방식의 결과는 동일하다.

참조형 배열

참조형 배열이란 배열의 타입이 기본형이 아닌 경우를 말한다. 배열 변수가 참조하는 배열의 공간이 값을 저장하는 것이 아니라 값을 참조한다는 것을 의미한다.

public class ItemForArray{
  private int price;
  private String name;
  public ItemForArray(int price, String name){
    this.price = price;
    this.name = name;
  }

  public int getPrice(){
    return price;
  }
  public String getName(){
    return name;
  }
}

이차원 가변 배열

int[][] koreanScoreArray = new int[3][];
koreanScoreArray[0] = new int[20]
koreanScoreArray[1] = new int[19]
koreanScoreArray[2] = new int[21]

이차원 배열을 사용하면서 뒤에서 각 배열의 길이를 지정해 주는 것이 가능하다. length를 사용해서 배열의 길이를 가변적으로 이용하자

$$
\tag{something}
\begin{CD}
A @>a>> B \\
@VbVV @AAcA \\
C @= D
\end{CD}
$$

Read more

airflow 구성하고 vscode로 코딩하기

맥에서 했으면 훨씬 구성이 쉬웠겠지만, 그리고 poetry로 했으면 훨씬 쉬웠겠지만 워낙 규모가 있는 라이브러리이다 보니 과정이 어려워 다른 참조들을 보면서 따라했다. 기본적으로 poetry랑 쓰기 어려운 이유는 airflow 내부의 라이브러리에 따라 poetry가 버전을 참조하지 못해서 에러가 나는 경우가 존재한다고 한다. 또한 하나의 문제는 mac에서는 그냥 리눅스가 존재하지만 윈도우에서 하려면 윈도우용 linux인

[Json] dump vs dumps

json은 javascript object notation의 줄임말로 웹 어플리케이션에서 구조화된 데이터를 표현하기 위한 string 기반의 포맷이다. 서버에서 클라인트로 데이터를 전송하여 표현하거나, 그 반대로 클라이언트에서 서버로 보내는 경우들에 사용된다. javascript 객체 문법과 굉장히 유사하지만 워낙에 범용성이 넓게 설계되어 있어서 다른 언어들에도 많이 사용된다. 기본적으로 python 에는 json 이 내장 모듈이다. 바로 import json해주면