일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- MVC
- 가상컴퓨팅
- sql
- JPA
- Stack
- 암호학
- 코딩테스트
- 자료구조
- 생성자
- data structure
- Queue
- 코테
- generic class
- spring
- 자바의정석
- jsp
- dfs
- python
- Algorithm
- 클라우드 컴퓨팅
- Java
- 공개키 암호화
- 크루스칼
- 알고리즘
- dbms
- DB
- BFS
- cloud computing
- javascript
- JDBC
- Today
- Total
PLOD
[Java] API 및 Collection Framework (Map, Set, List) 본문
- 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)
'개발 공부 > Java' 카테고리의 다른 글
[Java] 제네릭 클래스 (Generic Class) (0) | 2023.01.24 |
---|---|
[Java] Exception(예외 처리) (0) | 2023.01.23 |
[Java] interface(인터페이스) (0) | 2023.01.15 |
[Java] 업캐스팅(upcasting), 다운캐스팅(downcasting) (0) | 2023.01.13 |
[Java] 클래스- 생성자(Constructor) (0) | 2023.01.12 |