Java

배열에 대해서 알아 보자

H_u 2024. 4. 22. 17:29
728x90
반응형
SMALL

💡 학습 목표

  1. 자료 구조에 대한 개념을 알아 보자.
  2. 배열에 대한 기본 개념을 알아 보자.
  3. 배열에 길이와 인덱스의 길이.
  4. 배열에 길이와 요소

1. 자료 구조에 대한 개념을 알아 보자.

자료 구조는 데이터를 어떻게 조직화하고 저장하며 접근할지를 결정하는 방법입니다.

  1. 자료 구조의 특징:
    • 효율성: 데이터를 효율적으로 저장, 검색, 삽입, 삭제할 수 있어야 합니다.
    • 추상화: 데이터의 논리적인 구조와 물리적인 구현을 분리하여 추상적으로 정의해야 합니다.
    • 재사용성: 여러 응용 프로그램에서 재사용할 수 있도록 일반적이고 유연한 구조여야 합니다.
  2. 자주 사용되는 자료 구조:
    • 배열(Array): 동일한 데이터 타입의 요소들을 연속된 메모리 공간에 저장하는 자료 구조입니다.
    • List, Map, Set, 스택, 큐, 트리 등이 있다.

 

 

2. 배열에 대해 알아 보자.

배열(array)이란 연관된 데이터를 모아서 통으로 관리하기 위해서 사용하는 데이터 타입이다.

변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러 개의 데이터를 하나의 변수에 저장하기 위한 것이라고 할 수 있다.

배열에 특징

● 동일한 자료형의 순차적 자료 구조

● 인덱스 연산자[]를 이용하여 빠른 참조가 가능

● 물리적 위치와 논리적 위치가 동일

● 배열의 순서는 0부터 시작 (인덱스라고 한다)

● 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함

 

 

 

배열 선언과 초기화

 

 

 

실습 코드

package basic.ch14;

 

public class ArrayTest1 {

public static void main(String[] args) {

 

//배열이란?

//연관된 데이터를 모아서 통으로 관리하기 위한 데이터 타입!!

 

//배열의 특징

//배열은 사용하기 전에 반드시 몇개의 데이터가 들어갈지

//크기를 지정해야 사용할수 있다.

 

//배열 메모리 공간 만들기

int[] numbers = new int[3];

int intBoxes[] = new int[5];

 

//값 넣기 (초기화)

//배열의 길이 ->3

//인덱스의 길이 ->2

numbers[0] = 1000;

numbers[1] = 1001;

numbers[2] = 1002;

 

//numbers[3] = 1003; ->인덱스의 길이를 벗어나서 오류발생

//사전기반지식 = 모든 프로그래밍에 인덱스 번호의 시작은 0이다.

 

//배열의 선언과 동시에 초기화

int[] grades = new int[] {5, 3, 1};

int[] grades2 = {5,3,1}; //new int[] 도 생략 가능하다

 

//문제 1

//5개의 크기를 가지는 double 타입의 배열을 선언 하시오

//단, 배열의 이름은 마음대로 작성하세요

double[]a = new double[5];

//문제 2

//위에서 선언한 배열에 값을 인덱스 0~2까지 초기화 하시오

//값은 아무거나 상관 없음

a[0] = 0.1;

a[1] = 1.1;

a[2] = 2.1;

 

//문제 3

//String 타입에 배열을 선언, 배열에 크기는 3개

//선언과 동시에 초기화 하세요

String[] string1 = new String[] {"김", "성", "후"};

}//end of main

}//end of class

 

3. 배열에 길이와 인덱스의 길이

인덱스에 크기는 n - 1 개 이다.

package basic.ch14;

 

public class ArrayTest2 {

 

public static void main(String[] args) {

 

String[] names = new String[5]; //5칸 짜리 메모리 공간 할당

 

//생성 - C

names[0] = "김씨";

names[1] = "나씨";

names[2] = "박씨";

//names[3] = null

//names[4] = null

 

//조회 - Read

System.out.println(names);

System.out.println(names[0]);

System.out.println(names[1]);

System.out.println(names[2]);

System.out.println(names[3]);

System.out.println(names[4]);

 

 

//수정 - Update

names[0] = "Mr. Kim";

names[1] = "Mr. na";

names[2] = "Mr. Park";

 

 

//삭제 - Delete

 

names[0] = null;

names[1] = null;

names[2] = null;

//자바에서 null 값은 할당 되지 않은 상태를 의미합니다

//Object 타입에서 사용 가능

 

//1단계

//배열의 길이와 인덱스 길이에 대한 이해 --> 인덱스의 길이는 n - 1 이다.

System.out.println("배열에 크기 : " + names.length);

System.out.println("인덱스에 크기(n - 1) : " + (names.length - 1));

 

//문제 2

//배열의 크기가 50개 이면 인덱스의 길이는 얼마 인가? -> 49

//배열의 크기가 100개 이면 인덱스의 길이는 얼마 인가? -> 99

//배열의 크기가 375개 이면 인덱스의 길이는 얼마 인가? -> 374

 

 

 

}//end of main

 

}//end of class

 

4. 배열에 길이와 요소(elements)

배열의 길이와 요소의 개수는 꼭 동일하지 않습니다. —> 배열은 반복문과 함께 많이 사용된다.

 

package basic.ch14;

 

public class ArrayTest3 {

 

public static void main(String[] args) {

 

char[] alpahbets = new char[26];

char ch1 = 'A';

alpahbets[0] = ch1;

 

char ch2 = 'b';

alpahbets[1] = ch2;

 

char ch3 = 'c';

alpahbets[2] = ch3;

 

char ch26 = 'z';

alpahbets[25] = ch26;

 

System.out.println("---------------------");

System.out.println(alpahbets[3]);

if(alpahbets[3] == 0) {

System.out.println("동작함");

}

System.out.println("---------------------");

 

//배열은 반복문과 함께 많이 사용 된다.

int forCount = 0;

int eCount = 0;

for(int i = 0; i < alpahbets.length; i++) {

if(alpahbets[i] != 0) {

eCount++;

}

// alpahbets[i];

System.out.println(alpahbets[i]);

forCount++;

}

System.out.println("for 동작 횟수 " + forCount);

System.out.println("배열안에 요소의 개수는 ? " + eCount);

 

 

}//end of main

 

}//end of class

728x90
반응형
SMALL

'Java' 카테고리의 다른 글

전화번호관리 프로그램 만들기 - {연습문제}  (0) 2024.04.22
배열 의 활용(도서관리프로그램)  (0) 2024.04.22
static 메소드(함수)  (0) 2024.04.19
static 변수  (0) 2024.04.19
ver 0.0.1 Starcraft  (0) 2024.04.19