/ LECTURE

Java - List

이 페이지는 다음에 대한 공부 기록입니다

JAVA(자바), Python(파이썬) 기반의

AI 활용 응용 소프트웨어 개발자 양성 과정

2021.11.10. ~ 2022.05.18.

찾으시는 정보가 있으시다면
주제별reference를 이용하시거나
우측 상단에 있는 검색기능을 이용해주세요

27일차 수업

========복습========

제너릭

<> : 다이아몬드 기호

타입 매개변수

  • <> 안에 들어가는 문자

  • 문자는 일반적인 규칙, 한글자 대문자로 선언

  • T, E, K, V, N 등

class Box<T>{---}
// class 클래스명<타입파라미터>{---}

타입 인자

  • class 정의 측 코드가 아니라 new를 선언하는 코드 측

  • 인자에는 클래스 명이 들어감

  • 제너릭으로 설정한 형태로 그 안에 변수나 객체를 만듬

  • 기본자료형은 클래스가 아니기 때문에 wrapper 클래스로 진행

Box<String> box1 = new Box<>();
// 클래스명<인자> 인스턴스명 = new 클래스명<>();

======== 끝 ========

27일차 수업

List

본인 차제가 배열인 클래스

클래스 뒤에 [] 붙여서 배열화 시킨 것

배열은 크기가 고정이 되지만 List는 자동적으로 크기가 늘어남

List<String> a1 = new ArrayList<String>();	// 크기를 선언하는 부분이 없음
a1.add(11);	// list 값 추가 메소드
a1.size();	// 크기 값 반환 메소드
a1.remove(1);	// 해당 인덱스 값 제거
a1.get(0)	// 해당 인덱스 값 반환
a1.removeAll(a1);

	향상된 for문
		장점 : 모든 데이터를 출력, 배열 넘치는 오류가 없음
		단점 : 무조건 전체출력
	ex)
for(String s : a1){
	System.out.print(s);
}

Iterator

컬렉션 프레임 워크에 데이터를 가져오는데 특화된 클래스

Iterator<String> iterator = a1.iterator();
while(iterator.hasNext()){
	System.out.print(iterator.next() +  );
}
	ListIterator은 hasPrevious 라는 역행으로 값을 가져오는 메소드가 있음

Set

list는 저장 순서가 존재하지만 set은 존재하지 않음, 중복 저장도 하지않는다는 특징이 있음

import java.util.HashSet;
import java.util.Objects;

class Person{
	private String name;
	private int age;
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public int hashCode() {		// 오버라이딩 : 기발하다! 인스턴스 내 name 과 age의 해쉬값을 리턴하고, 1차로 거르고
		return Objects.hash(name,age);
	}

	public boolean equals(Object obj) {		// 오버라이딩 : 또 기발하다!! 2중으로 한번 더 확인한다 비교대상 인스턴스 인자로 받아서 같은지 2차로 한번 더 확인한다!!
		Person com = (Person) obj;
		if(name.equals(com.name) && (age == com.age)) {
			return true;
		}else {
			return false;
		}
	 }
}

public class Ex05_set_exam {

	public static void main(String[] args) {
//		Hash : 암호학에서 사용하는 용어, 어떠한 입력값을 받든 "10"자리 글자로 변환해서 저장하는 기법
//				특이한 케이스를 제외하고는 중복값이 존재하지 않습니다
		HashSet<Person> hSet = new HashSet<>();
		hSet.add(new Person("shin", 20));
		hSet.add(new Person("kim", 20));
		hSet.add(new Person("shin", 20));
		System.out.println(hSet.size());	// output will be 2
	}
}