본문 바로가기

분류 전체보기520

배열리스트 문제 2 이클립스에서 구현 1. 문제에서 정수를 3개까지 받겠다고 했으니, 절대 변하지 않는 상수로 처리해서 final int CNT = 3; size() : 컬렉션프레임워크 타입들의 길이에 대해 알고 싶을때 사용. 2. 정수 말고 그외의 것들도 입력 받을 수 있어서, 입력을 총 몇번 받을지 모르니까 while. 3. 정수를 입력받으면 문제되는게 없으니, data.add(num) 이 되고, 4. 그렇지 않으면, catch 문으로 들어가서 출력문이 나오고, continue; 된다. 주의할점 : data.size() 2023. 5. 20.
배열리스트 문제 1. 중복을 제외한다는 조건이 없기 때문에 ArrayList 클래스를 사용해서 배열리스트를 만들기 2.스캐너를 사용해서 0을 입력받으면 종료되는 프로그램 3.정수만 들어가기 때문에 을 사용 해서 강제성을 부여하기. 4. 입력을 몇번할지 모르니까 while(true), 종료 조건은 0번 입력받았을 때 5. data.add(입력받은값) 해서 배열리스트에 값을 저장 6. 만약 프로그램이 종료되면 ? 종료되기전까지 입력한 정수들의 평균을 출력 평균 : 입력한 정수들의 총합 / 입력한 정수의 개수 그리고, 내가 입력한 정수 중에서 짝수가 몇개인지를 출력 만약 내가 입력한 정수를 2로 나눴을때 나머지가 0이야? ok 그러면 그 ok된 짝수들의 개수를 출력 짝수는 __개 입니다. 그리고, 그 짝수가 뭔지를 출력. [.. 2023. 5. 20.
NoSuchElementException (예외) a) 232번째 코드라인에서 예외 발생 b) java.util.NoSuchElementException c) java.util.NoSuchElementException 예외 ? : 더이상 Element가 없는데도 불러오려고 할 때 발생한다. 즉, Scanner가 읽어올 스트림이 없는데 읽으려고 해서 발생한 예외. d) 해결방안 Stream을 닫아주는 sc.close();을 제거하면 해결 되는 모습을 볼 수 있다. 문제의 상황 1. 232번째 코드라인에서 예외가 발생했다고 하지만, (여기서는 일어날 에러가 마땅히 보이지도 않았다) 해당 코드를 실행시킬때 예외가 발생했다. 2. num : 상품의 고유 번호를 입력 받아 저장할 변수. 3. for문 : 0번째 부터 배열리스트 객체의 크기보다 작을때까지 (인덱스.. 2023. 5. 20.
IndexOutOfBoundsException (예외) a) 351번째 코드라인에서 예외 발생 b) IndexOutOfBoundsException c) IndexOutOfBoundsException 예외 ? : 리스트형 (배열리스트) 객체에서 선언되지 않은 요소를 get() 하는 경우에 발생. 문제의 상황 1. num : 상품의 고유 번호를 입력 받아 저장할 변수 2. for문 : 0번째 부터 배열리스트 객체의 크기보다 작을때까지 (인덱스는 0부터 시작하니) 반복하면서, 3. if문 : 만약 내가 입력한 고유번호가 배열리스트 객체의 i번째 값의 고유번호랑 같아 ? 그러면 배열리스트 객체의 i번째 값을 삭제해줘. 4. System.out.println(data.get(i).getName() + " 상품이 삭제 되었습니다. \n"); break; d) 해결 방안.. 2023. 5. 20.
예외와 예외처리 그동안, 예외를 만난 경험이 있다. => 원인을 분석 하고, 해결방안을 찾고 해결 했다. 코딩 자체에는 문제가 없지만 (문법에 이상이 없거나 등) "실행시" 발생하는 문제 == "예외" 라고 한다. 예외 처리를 하면 좋은점 : 1. 프로그램이 비정상적으로 종료되는것을 막을 수 있다. 2. 예외가 발생되면서 커질 수 있는 피해들을 최소화 하는것이 목표 ! 사용방법 : try { 실행시 예외가 발생할수도 있는 코드 예외가 발생되면, "즉시" catch문으로 이동. } catch (예외클래스 e) { 해당 예외클래스의 문제가 발생되면 이곳의 코드를 수행 } finally { 예외 발생 여부와 무관하게 항상 수행되는 코드. 통신을 위해 확보해둔 모든 연결스트림을 해제 한다. } 예시) 1. int형 타입의 배열.. 2023. 5. 19.
에러 메모 23.05.19 23.05.20 2023. 5. 19.
컬렉션 프레임워크 (집합 (Set)) "데이터 묶음" (== "컬렉션") Set (집합) 1. Set은 추상클래스라 객체 생성이 불가능 하다. 2. Set류의 조상 클래스 이다. 특징 : 1. 순서가 없다. (index 개념이 없다) 2. 중복 허용이 불가능 하다. 3. 배열리스트와 마찬가지로 다양한 자료형 저장이 가능하지만, => 반드시, 서로 같은 자료형만 취급 한다. 4. 제네릭 을 사용해 집합에 저장될 타입을 강제화 한다. Set data = new Set(); => 에러 발생 추상 클래스라 객체 생성 불가능. Set 추상클래스의 자손클래스로, HashSet 이라는 클래스가 있다. 사용예시 : 1. 집합에 숫자 10을 넣어 준다. 2. 숫자 10은 총 3개 3. String 타입의 "apple"은 int 타입으로 제너릭 해줬기 때문에.. 2023. 5. 19.
컬렉션 프레임워크 (배열리스트 (ArrayList)) "데이터 묶음" (== "컬렉션") ArrayList (배열리스트) == 향상된 배열 ArrayList 참조변수 = new ArrayList(); 로 사용이 가능 하다. 특징 : 1. 데이터를 마음대로 저장 가능. (괄호안에 숫자를 넣어 공간의 크기를 설정할 수 있다) 2. toString()이 오버라이딩 되어있다. 3. add(), remove(), clear(), size(), get(), ... 과 같은 다양한 기능의 메서드를 기본 제공 한다. 4. 서로 다른 자료형(타입) 들도 저장은 가능하지만, => 반드시, 서로 같은 자료형만 취급 한다. => 이는 "강제성"을 부여한다고 볼 수 있다. 5. 이때, 제네릭 을 사용해 배열리스트에 저장될 타입을 강제화 한다. ArrayList 참조변수 == ne.. 2023. 5. 18.
컬렉션 프레임워크 "프레임워크" 컬렉션, Spring, JPA, Mybatis, ... 등이 있다. "프레임워크" 란? 말그대로, 틀, 골격, 뼈대, ... 를 의미 한다. 즉, 이 틀로 써야 해 라고 "강제성"을 부여 하는것이다. ex) 리모컨 모든 리모컨 제품을 판매할 때는 "규격"이 맞아야 한다. 마찬가지로 코드도 코드의 "기준"이 필요하다. 이런 기준점을 잡아주는 역할을 하는것이 "프레임워크" 이다. Q. "프레임워크" 를 사용했을 때 좋은점 ? A. 1. 코드에 기준을 부여하여, 개발자들의 평균실력이 향상 된다. 즉, 내가 어떻게 짤지 몰라도 틀이 있으니까 짤 수 있게 된다는 말로도 볼 수 있다. 2. 틀이 있기 때문에 유지보수에 용이하다. (다른 사람이 알아보기 쉬운 코드) "데이터 묶음" (== "컬렉션") .. 2023. 5. 18.