제주 탈출 일지

패스트캠퍼스 챌린지 15일차 본문

패스트캠퍼스 챌린지!

패스트캠퍼스 챌린지 15일차

귀건 2021. 9. 20. 23:17
728x90
반응형

오늘은 15일차... 추석연휴이다. 내일은 진짜 추석, 즐거운 한가위,.,,

 

22. 2차원 배열 사용하기

2차원 이상의 배열.-> 2차원 이상의 배열을 다차원 배열이라고 이야기

 

int [] [] arr = new int[2][3];

int[][] arr = {{1, 2, 3 } , { 4, 5, 6}};

-> 이러한 형태로 초기화.

 

배열의 각 인자도 length속성을 가지고 있어서, 그를 이용해 2중 for문을 통해 반복한다.

new를 통해 배열을 생성할 경우 초기화 되고, {1,2,3,} 이런 형태는 1,2,3 이후에는 0으로 초기화 된다.

 

23. 객체 배열을 구현한 클래스 ArrayList

java.util에서 ArrayList를 제공해줌.

ArrayList를 어떻게 사용하고, 어떤 메소드들을 가지고 있는지 확인해볼 것.

배열의 삽입 삭제를 편하게 제공해줌.

최적의 알고리즘으로 이미 구성되어 있어 그냥 사용하기 만 하면 됨.

 

ctrl+shift+o -> 임포트할 때 찾아주는? 길잡이 비슷한 이클립스 기능

 

package ch23;

import java.util.ArrayList;
import ch21.Book;

public class ArrayListTest {

	public static void main(String[] args) {
		
		ArrayList<Book> library = new ArrayList<Book>(); //jre 5.0 부터 제공해줌.
		//ArrayList<Book> library = new ArrayList<>();
		// new 쪽 자료형을 최근에는 적지 않아도 해준다.
		
		library.add(new Book("태백산맥1", "조정래"));
		library.add(new Book("태백산맥2", "조정래"));
		library.add(new Book("태백산맥3", "조정래"));
		library.add(new Book("태백산맥4", "조정래"));
		library.add(new Book("태백산맥5", "조정래"));
		
		// 개수를 설정하지 않으면 10개로 잡고 나중에 더 늘어나면 크기를 늘린다.
		
		for(int i = 0; i < library.size(); i++) {
			library.get(i).showInfo();
		}
		
	}

}

라이브러리를 F1을 누르면 관련 정보가 나온다. 관련 메소드들이나 다양한 인자들에 대해서 문서를 읽어보고 사용하자.

 

ArrayList 알아둬야 할 메소드(개인적인 정리)

 

ArrayList 생성

정수형 ArrayList 생성시 int가 아닌 Integer로 생성한다.

ex) ArrayList<Integer> array = new ArrayList<Integer>();

 

ArrayList 삭제

ArrayList.remove(index)를 사용하여 특정 인덱스의 값을 삭제한다.

값이 삭제 된 이후 index 이후 값들은 빈 곳없이 앞으로 당겨진다...(표현이 좀 그렇네,..)

ArrayList.clear() 하면 모든 값을 삭제한다.

 

ArrayList의 크기 구하기

array.size() 메소드를 이용한다.

 

ArrayList 검색

특정 값이 있는 지 없는 지 여부를 확인하려면, contains()메소드를 사용한다.

ex) 1이 있는가? array.contains(1) True or False 리턴

특정 값을 검색할 때 indexOf()메소드를 사용한다.

ex) 1이 어디있는가? array.indexOf(1); 있다면 1의 인덱스 리턴, 없다면 -1 리턴

indexOf 메소드는 가장 처음 만난 인덱스의 값을 리턴한다.

만약 array에 1이 두개 있을때, 1을 검색하면 처음 만나는 인덱스만 알수 있다.

2번째 1을 찾고 싶을때는 다른 방법을 고안해야 할 듯하다.

 

 

24. ArrayList를 활용한 간단한 성적 산출 프로그램

1001학번 Lee와 1002학번 Kim, 두 학생이 잇습니다.

Lee 학생은 국어와 수학 2과목을 수강했고, Kim 학생은 국어, 수학, 영어 3 과목을 수강하였습니다.

Lee 학생은 국어 100점, 수학 50점입니다.

Kim 학생은 국어 70점, 수학 85점, 영어 100점입니다.

Student와 Subject 클래스를 만들고 ArrayList를 활용하여 두 학생의 과목 성적과 총점을 출력하세요.

 

StudentTest 클래스를 기반으로 거꾸로 Subject와 Student 클래스를 구현했다. 나는 이전에 구현한 Student와 Subject 클래스를 import 하지 않고 처음부터 다시 코딩했다. 

StudentTest

package ch24;

public class StudentTest {

	public static void main(String[] args) {
		
		Student studentLee = new Student(1001, "Lee");
		
		studentLee.addSubject("국어", 100);
		studentLee.addSubject("수학", 50);
		
		Student studentKim = new Student(1002, "Kim");
		
		studentKim.addSubject("국어", 70);
		studentKim.addSubject("수학", 85);
		studentKim.addSubject("영어", 100);
		
		studentLee.showStudentInfo();
		System.out.println("===============================");
		studentKim.showStudentInfo();
		
		
	}

}

Subject 클래스

package ch24;

public class Subject {

	public String SubjectName;
	public int SubjectScore;
	
	public Subject(int SubjectScore, String SubjectName) {
		this.SubjectName = SubjectName;
		this.SubjectScore = SubjectScore;
	}
	
}

Student 클래스

package ch24;

import java.util.ArrayList;

public class Student {
	
	
	public String studentName;
	public int studentNumber;
	
	public ArrayList<Subject> studentSubjectArray = new ArrayList<>();

	public Student(int studentNumber, String studentName) {
		
		this.studentName = studentName;
		this.studentNumber = studentNumber;
	}
	
	public void addSubject(String SubjectName, int SubjectScore) {
		studentSubjectArray.add(new Subject(SubjectScore, SubjectName));
	}
	
	public void showStudentInfo() {
		
		int total = 0;
		
		for(Subject subject : studentSubjectArray) {
			if(subject == null) {
				break;
			}
			System.out.println("학생 " + studentName + "의 " + subject.SubjectName + 
					" 과목 성적은 " + subject.SubjectScore + "입니다.");
			total += subject.SubjectScore;
		}
		System.out.println("학생 " + studentName + "의 총점은 " + total + " 입니다.");
	}
}

ArrayList를 student 클래스에 구현해두고, addSubject가 수행될때마다 ArrayList에 추가하는 방식으로 구현했다.

처음 자바를 접한다면, 쉽지는 않을 듯 하다.

다음은 수행화면 v(' - ' )v

오늘로 객체 지향 입문 챕터가 끝났다.. 굳

내일 부터는 ?

객체 지향 핵심 챕터가 추가된다.

인덱스들만 봤을때 상속, 다형성, 인터페이스 등등..

대학 시절에 배웠지만, 다시 배우면 또 새로운.. 그런 내용들일 것이라고 생각이 든다.

아직까지는 할만하지만, 그래도 다시 짚어가면서 많이 배워가고 있는 듯 하다.

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

728x90
반응형
Comments