본문 바로가기

배열

배열(Array) 구조의 이해 Array의 개념 Array는 저장해야 할 값이 많고, 그 값들의 type이 같은 유형인 경우 사용하는 자료구조이다. 따라서 하나의 Array에 각기 다른 여러 type의 value들을 담을 수 없다. Array의 값들은 index를 통해서 접근할 수 있으므로, Linked List와 달리 value의 검색과 변경의 속도가 빠르다(시간 복잡도 O(N) = 1). Array List와 같은 시간 복잡도를 가지지만 Array List는 길이가 고정되어 있지 않아 value의 추가, 삭제가 자유롭다. 하지만 Array는 primitive type으로서 object type인 List에 비해 작업의 속도가 빠르므로, Array List로 완전히 대체할 수는 없다. 실제 Array와 Array List가 자주 쓰.. 더보기
배열 출력, 복제, List 또는 Set에서 변경 배열값 출력 int[] a = {1, 2, 3}; System.out.println( Arrays.toString(a) ); java.lang의 toString 메소드가 아닌 java 유틸리티 함수인 Arrays를 사용한다. 배열 복제 int[] a = {1, 2, 3}; int[] b = a.clone(); 반복문을 이용하지 않고 배열을 그대로 복제한다. List 또는 Set을 Array로 변경(Object type만 가능) String[] array = list.toArray(new String[5]); list의 길이가 5 이하라면 길이 5짜리 배열을 만든다. List list = new ArrayList(); list.add("A"); list.add("B"); list.add("C"); Stri.. 더보기
(객체지향 기초) Java로 계좌 관리 프로그램 만들기(2) 발생한 문제와 해결과정 Java와 객체지향 초보다 보니 기초적인 내용임에도 작업 과정에서 문제가 많이 발생했는데, 해결 과정에서 시간이 너무 오래 걸리게 되었다. 그래서 일단 그냥 넘어갔다 실력이 쌓이고 다시 풀어 보려고 했으나 생각을 바꿔 끝까지 완성하게 되었다. 넘어가면 당장의 시간은 덜 쓰겠지만, 확실히 학습하지 못한 개념은 이후의 학습 과정에 장애 요소가 되어 결과적으로 시간을 더 소모하게 될 수 있다. 다 적으면 끝도 없겠지만, 복습 과정에서 활용할 수 있도록 실행 과정에서 발생했던 문제 위주로 간략하게 적어 보겠다. nextInt() 메소드를 사용했을 때 입력창이 skip되는 문제 위와 같이 계좌번호를 입력하지 못하고 계좌 수를 입력하는 창이 바로 나오게 되는데, 검색을 통해 이게 nextIn.. 더보기
(객체지향 기초) Java로 계좌 관리 프로그램 만들기(1) 목표와 전체 소스 코드 만들고자 하는 프로그램 다음은 키보드로부터 계좌 정보를 입력받아 계좌를 관리하는 프로그램입니다. 계좌는 Account 객체로 생성되고 BankApplication에서 길이 100인 Account[ ] 배열로 관리됩니다. 실행 결과를 보고, Account와 BankApplication 클래스를 작성해보세요(키보드로 입력받을 때는 Scanner 의 nextLine ( ) 메소드를 사용). 객체는 공부했다. 그런데 Account[] 배열로 만들라 하니 전혀 감이 잡히지 않았다. 이것 때문에 고민하고 설계하는 데 투입한 시간이 절대적으로 많다. 그런 거 예제에서도 안 만들어 봤는데 바로 만들어 보라고 한다... 소스 코드 1. Account 클래스 package ch_06.practice.. 더보기
(배열 기초) Java로 점수 분석 프로그램 만들기 이것이 자바다를 공부하면서 모든 개념은 책에 정리하고 있지만, 주요 확인문제는 작성 과정의 기록이 필요하므로 앞으로 이곳에 정리해 두려 한다. 이것이 자바다 Ch.05 확인문제 9번 문제다. 목표와 전체 소스 코드 만들고자 하는 프로그램 ------------------------------------------------------ 1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료 ------------------------------------------------------ 선택> 1 (입력값) 학생수> 3 (입력값) ------------------------------------------------------ 1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5... 더보기