자바 시작하기 - 문법4

지니·2023년 5월 15일
0

자바 기초

목록 보기
4/7
post-thumbnail

자료구조

1. 배열 Arrays

int[] // 뒤에 나올 변수는 int를 모아 놓은 배열이다.
int 뒤에는 int값만 넣을 수 있다. 문자열 X

int[] price = {10000, 9000, 7000};
String[] mbti = {"INFP", "ENFP"};

배열의 요소들은 각각 자신만의 순서를 가지고 있다.
(인덱스 값은 0부터 시작한다.)

배열 수정하기

int[] price = {10000, 9000, 7000};
String[] mbti = {"INFP", "ENFP"};
  1. 값을 먼저 가져오기
  2. 새로운 값 넣기
int[] price = {10000, 9000, 7000};
String[] mbti = {"INFP", "ENFP"};

 price[1] = 8000;
System.out.println(price)

이상한 값이 나오는데, 변수 객체이기 때문에 값 자체가 아니라 주소값이 출력된다.

for 반복문을 통한 배열 출력하기

모든 요소들에 대한 작업을 하기 전에, 전체 길이를 알아야 한다.
그 길이만큼 for문이 작업을 반복해야 하기 때문이다.

int[] price = {10000, 9000, 7000};
String[] mbti = {"INFP", "ENFP"};

System.out.println(mbti.length); //길이 구하는 방법

for (int i = 0; i < mbti.length; i++ ) {
   System.out.println(mbti[i]);
} // mbti 배열 출력

2. 리스트

리스트는 순서구분, 중복 허용이 가능하다는 특징을 가지고 있다.

ArrayList list = new ArrayList(10) //10개의 요소를 담을 수 있는 리스트를 만든 것
list.add(100); //100의 요소데이터를 추가한 것
list.add("INFP"); //타입을 지정해놓지 않으면, 어떠한 타입도 넣을 수 있다.

for (int i = 0; i < list.size; i++) {
   System.out.println(list.get(i))
}

출력 >> 100 INFP

자바 리스트의 인덱스값 출력 방식이 독특하다.
list.get(i)

데이터 타입을 제한하고 싶다면 처음 리스트를 만들 때 지정하면 된다.

ArrayList<Integer> list = new ArrayList(10)

3. 맵

맵은 매핑된 정보를 가리킨다.
키-값 쌍을 요소로 가지는 데이터의 모음이다.
순서 구분이 없다.
키는 중복 불가. 값은 중복 허용.

HashMap map = new HashMap();
map.put("age", 30); //age는 키, 30은 값에 해당된다.
map.put("mbti", "INFP");

System.out.println(map.get("age")); //get에 인덱스값이 아니라 키값을 넣는다.

키와 값에 들어가는 자료형의 데이터 타입을 제한하는 방법은, 리스트 만들 때와 같다.

HashMap map<String, String> = new HashMap();

함수

함수(메서드)는 어떠한 값이 넘겨지거나 아무 값도 넘겨지지 않았을 때
작업을 수행한 후 반환하거나 혹은 반환하지 않고 종료한다.

1. '입력 O, 출력(반환) O'인 경우

int mod (int a, int b) {
   int result = a % b;
   return result;
}

2. '입력 O, 출력(반환) X'인 경우

void printNum (int a) {
   System.out.println(a); //출력이 된 후 데이터는 휘발된다.
}

3. '입력 X, 출력(반환) O'인 경우

String greeting() {
   return "Hello";
}

4. '입력 X, 출력(반환) X'인 경우

void gretting_2() {
   System.out.println("Hello"); //출력된 후 데이터 휘발
}

1~4 확인해보기

public static void main(String[] args){
   int mod_result = mod(3, 2);
   System.out.println(mod_result);
   
   printNum(10);
   
   String str = greeting();
   System.out.println(str);
   
   greeting_2();
}
static int mod (int a, int b) {
   int result = a % b;
   return result;
}
static void printNum (int a) {
   System.out.println(a); //출력이 된 후 데이터는 휘발된다.
}
static String greeting() {
   return "Hello";
static void gretting_2() {
   System.out.println("Hello"); //출력된 후 데이터 휘발
}

자료구조 형태로 함수 구성하기

public static void main(String[] args) {
   ArrayList list_1 = new ArrayList<>();
   list_1.add(10);
   list.add(100);
   
   printListElements(list_1);
}

static void printListElements(ArrayList list) {
   for (int i = 0; i < list.size(); i++){
      System.out.println(list.get(i));
   }
}
profile
IT학과 전과생

0개의 댓글