PLOD

[Java] API 및 Collection Framework (Map, Set, List) 본문

개발 공부/Java

[Java] API 및 Collection Framework (Map, Set, List)

훌룽이 2023. 1. 16. 10:22

-  package(패키지)

 

패키지는 상호 관련있는 클래스와 인터페이스를 한곳에 묶어놓은 것을 의미한다.  

 

 

-  API

 

자바에서 기본적으로 제공하는 라이브러리(패키지)이다. 프로그램 개발에 자주 사용되는 클래스 및 인터페이스 모음을 말한다.  자바는 네트워킹, 보안, XML 생성, 데이터베이스 접근 등 사용 방법이나 규칙들을 제공한다. 

 

 

 

* 기본 API 클래스 

 

1) java.lang package : 자바 프로그램의 기본적인 클래스를 담고 있는 패키지 , 특별한 import 없이 사용할 수 있다.

 

- java.lang.Class :  실행 중인 자바 프로그램 내부에 포함된  클래스와 인터페이스 정보를 제공한다. 

 

- java.lang.Math :  각종 수학 함수를 제공한다.(abs, pow, sqrt)

 

* java.lang.Object : 최상위 클래스로 기본적인 메서드를 제공한다.자바의 모든 클래스는 java.jang.Object 클래스를 상속 받는다.

 

- public void toString() :  문자열 반환

 

- public boolean equal(Object o) : 현재 객체가 동일한지 반환


- public int hashCode() : 객체 해시코드 반환

 

- protected Object clone() : 객체 클론 생성

 

-java.lang.StringBuffer(String, StringBuilder) : 문자열을 처리하는 메서드를 제공한다.

 

 

public class test01 {
	public static void main(String[] args) {
		
		StringBuffer str1 = new StringBuffer("우리나라");
		StringBuffer str2 = new StringBuffer("대한민국");
		
		str1.append(str2);
		System.out.println(str1);
		// append , hashCode, length, capacity를 지원
		
		
		StringBuffer str3 = new StringBuffer("********");
		
		str3.insert(0, "안녕하세요");			// 문자열 삽입
		System.out.println(str3);
		
		str3.setCharAt(5, '?');					// 문자 삽입
		System.out.println(str3);
		
		
		str3.replace(6,13,"이건 뭡니까?");		// 문자열 교체
		System.out.println(str3);
		
		str3.delete(6,13);						// 문자열 삭제
		System.out.println(str3);
		
		str3.reverse();							// 문자열 역순
		System.out.println(str3);
		
		
		
	}
}

 

- java.lang.System : 운영체제의 기능을 일부 이용한다. 프로그램 종료 , 키보드로부터 입력 , 모니터 출력, 메모리 정리, 현재 시간 읽기, 시스템 프로퍼티 읽기 등의 역할을 한다. 

 

- java.lang.Thread :  스레드를 처리하는 메서드를 제공한다.

 

 

 

2) java.util package : 날짜 , 시간 , 리스트 , 벡터 , 해시 테이블, 컬렉션 등 다양한 유틸리티 클래스와 인터페이스를 제공한다.  java.lang 패키지와 달리 import를 해줘야 사용할 수 있다.

 

- java.util.date :  날짜와 시간을 출력할 수 있게 해주는 클래스

 

* java.util.Arrays : 배열의 복사 , 정렬 탐색 등 배열 조사에 필요한 메서드를 제공한다.

 

- java.util.Calendar :  달력 정보를 제공하는 클래스 

 

 

........
........
........

 

 

이 외에도 자바 프로그래밍은 수많은 API를 사용하여 프로그래밍 하는 경우가 쉽고 빠르게 구현 할 수 있다. API는 너무 많기 때문에 어떤 API를 사용할 때 사용방법이 기억이 안나거나 처음 사용하는 API라면 아래의 사이트에서 API를 확인하여 사용하자.

 

 

- Collection Framework(컬렉션 프레임워크)  

컬렉션 프레임워크는 다수의 데이터를 쉡고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미

데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것입니다. 

대표적으로 Map(순서 O(key), 키 중복 X), Set(순서 X, 중복 X), List(순서 O , 중복 O)구조가 있습니다.

 

1)  List  :  순서를 유지하고 저장 할 수 있고 중복 값을 저장할 수 있다.

 

ArrayList ,Vector, LinkedList

 

public class ListTest01 {
	public static void main(String[] args) {
		
		ArrayList<String> list = new ArrayList<>();
		list.add("one");							// 원소 삽입
		list.add("two");
		list.add("three");
		list.add("four");
		list.add("five");
		list.add(2,"two half");						// 원하는 인덱스에 원소 삽입
		
		System.out.println(list.get(1));			// 해당 인덱스 원소 출력
		System.out.println(list.toString());		// 모든 원소 출력
		
	}
}

 

* ArrayList <클래스명> (ArrayList 객체명) = new ArrayList<ArrayList 객체명(생략가능)>() ;

 

import java.util.ArrayList;

class student {
	private String studentName;
	private int studentNum;
	
	private student() {}
	
	public student(String studentName, int studentNum) {
		this.studentName = studentName;
		this.studentNum = studentNum;
	}

	@Override
	public String toString() {			// 객체의 원소를 출력하기 위해서는 toString 오버라이딩 필수!
		return "student [studentName=" + studentName + ", studentNum=" + studentNum + "]";
	}	
	
	
}

public class ListTest02 {
	public static void main(String[] args) {
		student studentKim = new student("김수연", 100);
		student studentChoi = new student("최기현", 101);
		student studentPark = new student("박지원", 102);
		
		ArrayList<student> studentList = new ArrayList<>();
		
		studentList.add(studentKim);
		studentList.add(studentPark);
		studentList.add(studentChoi);
		
		studentList.add(new student("황우슬혜",104));
		studentList.add(new student("정경호",105));
		studentList.add(new student("박연진",106));
		
		System.out.println(studentList.toString());
		
		studentList.set(5, new student("문동은", 106));			// ArrayList 수정
		System.out.println(studentList.toString());
		
		
		studentList.remove(4);									// ArrayList 삭제
		System.out.println(studentList.toString());
	
	}
}

 

 

 

2) Set : 순서를 저장하지 않고 저장 가능하고 중복 저장이 불가능 하다.

 

HashSet, TreeSet

 

 

 

3) Map : 키와 값 쌍으로 저장 가능하고 키는 중복 저장을 안한다

 

HashMap, HashTable, TreeMap, Properties

 

// ID,PASSWORD를 HashMap으로 입력받아 인증하는 코드

public static void main(String[] args) {
		
		HashMap<String , Object> map = new HashMap();
		map.put("id", "abc");
		map.put("pwd", 1234);
		
		Scanner scn = new Scanner(System.in);
		
		while(true) {
			System.out.print("아이디 : ");
			String id = scn.next();
			
			System.out.print("비밀번호 : ");
			int pwd = scn.nextInt();
			
			String mapId = (String) map.get("id");
			int mapPwd = (Integer) map.get("pwd");
			
			if(mapId.equals(id)) {
				if(mapPwd == pwd) {
					System.out.println("로그인 성공");
					scn.close();
					break;
				}
				else {
					System.out.println("비밀번호를 확인하세요");
				}
			}
			else {
				System.out.println("아이디를 확인하세요.");
			}
		}

 

 

 

 

* API document

쉽게 API를 찾아 이용할 수 있도록 문서화 한것을 의미한다.

모든 자바 API를 기억할 수 없으므로 까먹거나 새로운 API를 사용해야 할때 들어가서 확인.

 

링크 : Overview (Java SE 17 & JDK 17) (oracle.com)

 

Overview (Java SE 17 & JDK 17)

This document is divided into two sections: Java SE The Java Platform, Standard Edition (Java SE) APIs define the core Java platform for general-purpose computing. These APIs are in modules whose names start with java. JDK The Java Development Kit (JDK) AP

docs.oracle.com

 

Comments