전체 글 154

[Java] Collection - Set, Map 써보기

List에 이어 이번엔 Set과 Map이다. 1) Set Set은 List와는 달리 순서가 보장되지 않고 중복된 값이 저장되지 않는다. List는 요소들이 각각 index 값을 가지고 순서대로 서있는거라면 Set은 이것저것이 섞여있는 주머니 같은 느낌이랄까. 이 때문에 index 값을 써서 출력하지 못하고 iterator로 출력이 가능하다. 물론 한꺼번에 출력하는건 간단히 된다. list에서 요소를 넣듯 .add를 통해 다섯가지 요소를 넣어줬다. 그리고 apple은 일부러 두번 넣었다. 출력값은 이렇다. 여기서 두가지를 알 수 있다; index 값이 없다보니 입력 순서에 관계없이 멋대로 저장되고, 중복된 입력값은 저장되지 않는다. 배열에서 for문으로 출력하듯 하기 위해선 위와 같이 다소 번거로운 코드를..

[Java] Collection - List 써보기

앞선 포스팅에서 배열(array)의 길이가 알아서 필요에 따라 연장되도록 arraycopy를 사용한 코드를 짜보았다. 결국 배열은 길이가 제한된다는 점 때문에 써본 것이지만, List라는 자료형 클래스를 사용하면 길이 제한을 신경 쓸 필요가 없다. 리스트 클래스의 특징은; 값을 하나씩 저장하고 순서를 보장하며 중복을 허용한다. 그렇기에 일반적으로 배열대신 사용이 가능하다. list1로 선언된 리스트배열은 모든객체를 저장할 수 있고, list2는 String을, list3은 정수를 저장 가능하다. 저장 방법은 다음과 같다. 라인15~17은 list2에 세가지 String을 저장한 것이고, 라인 19~21은 list3에 세가지 정수를 저장한 것이다. 출력이 필요할 시 간단하게 System.out.print ..

[Java] arraycopy를 이용한 배열 길이 늘리기

자바로 코딩을 하다보면 배열을 첫 선언할 때 임의의 값을 넣어야할 때가 있다. 처음부터 아주 큰 값을 넣는건 하드웨어 자원 관리 차원에서 좋은 방법이 아닐 것이다. 그렇다면 프로그램 실사용 중 임의의 값을 초과하는 배열이 필요해질 때는 어떻게 해야할까? 코드를 수정하는 패치를 진행한다면 해결은 되겠지만, 이런 번거로움을 미연에 방지할 수 있다. 다음을 보자; 라인 56 - 64는 내가 학생 수강관리 프로그램을 짤 때 넣은, 수강과목을 추가하는 메소드이다. 학생 개인이 수강하는 과목의 배열(subjectList)은 해당 클래스 상단부에 5개로 임의 선언 되었으나 5개가 넘을 수 있으니 해당 배열이 필요시 자동적으로 10개, 15개로 늘어나도록 코드를 짜보았다. 먼저 57번 라인에서 if문으로 과목의 개수가..

[Java] Week1 정리

1. 변수 - 일반변수(기본형) : 값을 저장하는 기본 메모리공간 1. 정수형 : int, byte, short, long(접미사 L(l)) 2. 실수형 : double, float(접미사 F(f)) 3. 문자형 : char(정수형으로 분류하기도 함 : 유니코드표 코드로 저장) : 1글자 4. 불리언 : boolean - 참조변수 : 객체의 주소를 정하는 변수(객체명) : new 키워드를 통해 객체 생성 - 자료형변환 : 변수, 상수, 리터럴값들을 일시적으로 다른 자료형으로 변환 - 자동형변환 : 정수 -> 실수, 작은바이트 -> 큰바이트 - 명시적형변환 : 자동으로 자료형변환이 되지않아서 에러가 발생하면 (자료형)변수명 => 명식적 자료형 변환을 해줘야 합니다. 2. 연산자 - 대입연산자(=) - 오른..