배열

Java/이론 정리 / / 2021. 1. 19. 18:20

배열

  • 배열 선언: 실제는 배열 변수의 선언이다.

    • 클래스 선언처럼 앞에 데이터 타입을 쓰고 new로 할당을 해준다.
    • c++과 다르다!!
      int[] scores = new int [5];
      int scores[] = new int [5];
      int size = scores.length; //배열의 사이즈를 나타냄
    • 사용법은 똑같음
  • 다차원 배열

    • 기본적으로 사용 개념은 똑같다.
    • 관례
      • int[][] scores = new int[3][5];
      • 3행 * 5열: 앞에가 행 뒤에가 열
        int[] scores = {{100, 90, 50, 95, 85}, {70, 60, 82, 75, 40}, {90, 80, 70, 60, 50}};
        for (int i = 0; i< scores.length; i++){
        for(int j = 0; j<score[i].length;j++)
          scores[i][j];
        }
  • 동적 배열

    • 유동적인 배열을 지원하기 위해 ArrayList 클래스를 제공

      ArrayLIst<참조타입> 참조변수 =  ArrayList<>();
      
      참조변수.add(데이터)
      참조변수.remove(인덱스 번호)
      참조변수.get(인덱스 번호)
      참조변수..size()
    • 참조타입은 클래스도 들어갈 수 있으나 기초타입(ex. int, char)일 경우 해당하는 class를 사용한다.

      • Integer, Long, Short etc..
      • 위와 같은 클래스는 NULL값을 가질 수 있다.
  • 배열을 위한 반복문

      for(데이터타입 변수 : 배열 혹은 컬렉션 ){}
    • 배열 또는 컬렉션 내용을 변수로 가져온다.
    • 더 이상 가져올 항목이 없으면 반복문을 종료한다.

메서드에서 배열을 전달

    int[] num = new int[5];
    function(num);
public static void function(int[] a){
    a[0] = 1;
}

c++에서는 call by reference 로 받았지만
java에서는 배열 그대로 받는다.

public static void main(String[] args)에서 String[] args의 의미
자바 프로그램을 실행할 때 Test.java를 그대로 실행할 수 있지만
Test.java -d 처럼 옵션을 넣을 수 있다.
이 옵션 또한 매개변수이므로 String[] 배열로 받아서 사용이 가능하다.

컬렉션 프레임워크

프레임워크: 라이브러리 집합이다.(프로그램 실행 흐름이 존재)
라이브러리: 코드 파일

  • 컬렉션: 데이터를 한 곳에 모아 편리하게 저장 및 관리하는 가변 크기의 객체 컨테이너

    • Stack, Queue, LinkedLIst, ArrayList 등이 있다.
  • 컬렉션 프레임워크: 객체를 한 곳에 모아 효율적으로 관리하고 편리하게 사용할 수 있도록 제공하는 환경

    • 인터페이스와 클래스로 구성되어있다.
    • 인터페이스
      • 컬렉션에서 수행할 수 있는 각종 연산을 제네릭 타입으로 정의해 유사한 틀래스에 일관성 있게 접근
    • 클래스
      • 컬렉션 프레임워크 인터페이스를 구현한 클래스
  • java.util 패키지에 포함되어 있다.

  • 인터페이스

    • List
      • ArrayList, LinkedList
    • Queue
      • PriorityQueue, DelayQueue
    • Set: 객체의 순서가 없으며, 동일 원소를 중복 불가
      • HashSet
    • Map: 키와 값을 쌍으로 저장, 키는 중복 불가
      • HashMap

        List

        나머지는 다 자구에서 한거니까 pass
        Stack클래스는 여기에 있어
  • ArrayList

    • 초기 용량이 존재
    • Iterator: 순방향
  • LinkedList

    • 이중 연결 리스트
    • Iterator: 순방향, 역방향

      Queue

      Queue<String> q = new LinkedLIst<>();
      Queue라는 인터페이스에서 String 타입으로 LinkedList 메소드를 사용할거야
  • 기존에 알던 enqueue dequeue가 아닌

  • (offer add) remove를 사용

    Set

    객체 순서 없이, 원소 중복 없이 저장

    Set<String> h1 = HashSet<>();

    Set이라는 인터페이스에서 String 타입으로 HashSet 메소드를 사용할거야

    Map

    Key와 Value를 쌍으로 저장

    Map<String, Integer> m = new HashMap<>();

    Map이라는 인터페이스에서 String타입의 KeyInteger타입의 Value으로 HashMap 메소드를 사용할거야

'Java > 이론 정리' 카테고리의 다른 글

예외처리와 제네릭  (0) 2021.01.19
객체 지향  (0) 2021.01.19
Java 기본 문법  (0) 2021.01.19
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기