전체 글 176

Set 인터페이스 구현 클래스

HashSet 클래스 -Set 인터페이스를 구현한 클래스 -멤버의 중복 여부를 체크하기 위해 인스턴스의 동일성을 확인해야 함 -동일성 구현을 위해 필요에 따라 equals()와 hashCode() 메서드를 재정의 함 import lombok.Getter; import lombok.Setter; @Getter @Setter public class Member { // 멤버 변수 선언 private int memberId; private String memberName; // 생성자 초기화 public Member(int memberId, String memberName) { this.memberId = memberId; this.memberName = memberName; } @Override public..

Iterator

컬렉션 요소를 순회하는 Iterator 요소의 순회란? -컬렉션 프레임워크에 저장된 요소들을 하나씩 차례로 참조하는 것 -순서가 있는 List 인터페이스의 경우는 Iterator를 사용하지 않고 get(i) 메서드를 활용할 수 있음 -Set 인터페이스의 경우 get(i) 메서드가 제공되지 않으므로 Iterator를 활용하여 객체를 순회 함 Iterator 사용하기 -boolean hasNext() : 이후에 요소가 더 있는지를 체크하는 메서드, 요소가 있다면 true 반환 -E next() : 다음에 있는 요소를 반환 Iterator iterator명 = 컬렉션.iterator(); MemberArrayList.java의 removeMember() 메서드를 Iterator를 활용해 구현 public bo..

List 인터페이스 구현 클래스

멤버십 관리하기 -Member 클래스를 만들고, 아이디와 이름을 멤버 변수로 선언 -Member 클래스로 생성된 인스턴스들을 관리하는 클래스를 컬렉션 프레임워크 클래스들을 활용해 구현한다. ArrayList 활용하기 -멤버를 순차적으로 관리 함 @Getter @Setter public class Member { // 멤버 변수 선언 private int memberId; private String memberName; // 생성자 초기화 public Member(int memberId, String memberName) { this.memberId = memberId; this.memberName = memberName; } @Override public String toString() { // toSt..

컬렉션 프레임워크

사용 배경 -배열을 생성할 때 저장할 수 있는 객체 수가 정해지기 때문에 불특정 다수의 객체를 저장하기에 문제가 있다. -배열의 또 다른 문제점은 객체를 삭제했을 때 해당 인덱스가 비게 될 수 있다. -배열의 문제점을 해결하고 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 java.util 패키지에 컬렉션과 관련된 인터페이스와 클래스들이 포함되어 있다. 자바 컬렉션이란? -객체를 수집해서 저장하는 역할을 한다. -주요 인터페이스로는 List, Set, Map이 있다. List 인터페이스의 메서드 기능 메서드 설명 객체 추가 boolean add(E e) 주어진 객체를 맨 끝에 추가 void add(int index, E element) 주어진 인덱스에 객체를 추가 set(int ..

Java 2022.06.10

+27 컬렉션 프레임워크: ArrayList

A c = new B() A 를 쓰되 B 메서드 주소를 쓴다. ArrayList 1. import java.util.*; public class M { public static void main(String[] args) { // 제네릭X // 이름만 다르고 기능 같음 -> ArrayList, Vector, LinkedList ArrayList list = new ArrayList(); //Vector list = new Vector(); //LinkedList list = new LinkedList(); // 추가 list.add("김가가"); list.add("김나나"); list.add("김다다"); list.add("김라라"); list.add("김마마"); // 전체 출력 for(Object o..

수업 2022.06.10

clone

clone() 자신을 복제해 새로운 인스턴스를 생성하는 일을 한다. 어떤 인스턴스에 대해 작업을 할 때, 원래의 인스턴스는 보존하고 clone 메서드를 이용해 새로운 인스턴스를 생성하여 작업을 하면 작업 이전의 값이 보존되므로 작업에 실패해 원래의 상태로 되돌리거나 변경되기 전의 값을 참고하는 데 도움이 된다. Object 클래스에 정의된 clone()은 단순히 인스턴스 변수 값만 복사하기 때문에 참조 타입의 인스턴스 변수가 있는 클래스는 완전한 인스턴스 복제가 이루어지지 않는다. 배열의 경우, 복제된 인스턴스 변수의 값만 복사하기 때문에 복제된 인스턴스 작업이 원래의 인스턴스에 영향을 미치게 된다. 이런 경우 clone 메서드를 오버라이딩해서 새로운 배열을 생성하고 배열의 내용을 복사한다. x=3, y..

Java/정석 2022.06.10

+26 라이브러리 : java.util, java.util.regex, java.util.StringTokenizer

java.lang > Object, String, StringBuffer, Math, Wrapper java.util > Scanner, StringTokenizer java.util Random 1. 1-99 중에 랜덤 숫자 출력 import java.util.*; public class MainClass { public static void main(String[] args) { Random r = new Random(); int a = r.nextInt(100); // 1-99 System.out.println(a); } } 2. 예약 가능 날짜 랜덤 출력 9 // 오늘 일 ㅡㅡㅡㅡ 극장 선택 ㅡㅡㅡㅡ 1. CGV 2. 메가박스 3. 롯데시네마 9. 프로그램 종료 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 극장..

수업 2022.06.09

Object 클래스

java.lang 패키지 -프로그래밍시 import 하지 않아도 자동으로 import 됨 -import.java.lang.*; -많이 사용하는 기본 클래스들이 속한 패키지 -String, Integer, System.. 모든 클래스는 Object 클래스를 상속 받는다 -java.lang.Object 클래스 -모든 클래스는 Object에서 상속 받고, Object 클래스의 메서드 중 일부는 재정의 해서 사용할 수 있음 -컴파일러가 extends Object를 추가함 class Student -> class Student extends Object toString() 메서드 -객체의 정보를 String으로 바꿔서 사용 함 -String이나 Integer 클래스는 이미 재정의 되어 있음 toString() 메..

+25 라이브러리

substring 1. 글자 수 벗어난 경우 자르기 문자열 입력: dfadfafdfafdfafd 입력한 문자열: dfadfafdfafdfafd 글자 수: 16 dfadfafdfa... public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("문자열 입력: "); String ss = sc.nextLine(); System.out.println("입력한 문자열: " + ss); System.out.println("글자 수: " + ss.length()); // 글자 수 벗어난 경우 if(ss.length() > 10) { ss = ss.substring(0, 10) + "..."; } Sy..

수업 2022.06.08