java.lang 패키지 java.util 패키지 java.io 패키지 콜렉션 2

Similar documents
PowerPoint Presentation

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

12-file.key

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - lec12 [호환 모드]

07 자바의 다양한 클래스.key

PowerPoint Presentation

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

gnu-lee-oop-kor-lec11-1-chap15

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Microsoft PowerPoint - Lect07.pptx

Network Programming

Cluster management software

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Network Programming

PowerPoint Presentation

Microsoft PowerPoint - 04-UDP Programming.ppt

02 C h a p t e r Java

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

자바-11장N'1-502

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

PowerPoint Presentation

JAVA PROGRAMMING 실습 09. 예외처리

PowerPoint Presentation

Microsoft PowerPoint - lec7_package [호환 모드]

Microsoft PowerPoint - 2강

Spring Boot/JDBC JdbcTemplate/CRUD 예제

제11장 자바 입출력

Microsoft PowerPoint - 03-TCP Programming.ppt

12-file.key

rmi_박준용_final.PDF

PowerPoint Presentation

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint - Java7.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint Presentation

Chapter 4. LISTS

4장.문장

슬라이드 1

PowerPoint 프레젠테이션

Cluster management software

chap 5: Trees

gnu-lee-oop-kor-lec06-3-chap7

untitled

파일로출력하는작업순서 1. 파일을연다. 2. 파일로자료를쓴다. 3. 파일을닫는다. 파일입출력에사용되는클래스들. FileInputStream, FileOutputStream, FileReader, FileWriter 문자단위로입출력하기 사람이읽을수있는문자로만구성된파일을읽

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

제11장 프로세스와 쓰레드

슬라이드 1

Microsoft PowerPoint - CSharp-10-예외처리

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

09-Java Input Output

교육자료

A Tour of Java V

슬라이드 1

No Slide Title

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft Word - java19-1-midterm-answer.doc

쉽게 풀어쓴 C 프로그래밍

JAVA PROGRAMMING 실습 05. 객체의 활용

C++ Programming

Java

Microsoft PowerPoint - RMI.ppt

PowerPoint Presentation

PowerPoint Presentation

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

비긴쿡-자바 00앞부속

자바입출력구조 자바입출력 파일 기본입출력 필터입출력 문자입출력 비순차접근파일 객체입출력 파일입출력 바이트배열입출력 파이프입출력 연결형입력 스트링버퍼입력 스트림 ( 순차접근 ) 자바입출력구조

JAVA PROGRAMMING 실습 02. 표준 입출력

쉽게 풀어쓴 C 프로그래밍

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Microsoft PowerPoint - Lect04.pptx

쉽게 풀어쓴 C 프로그래밊

JUNIT 실습및발표

슬라이드 1

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - Introduction to Google Guava.pptx

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

Spring Boot

C# Programming Guide - Types

[ 정보 ] 과학고 R&E 결과보고서 Monte Carlo Method 를이용한 고교배정시뮬레이션 연구기간 : ~ 연구책임자 : 강대욱 ( 전남대전자컴퓨터공학부 ) 지도교사 : 최미경 ( 전남과학고정보 컴퓨터과 ) 참여학생 : 박진명 ( 전

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

선형대수학 Linear Algebra

PowerPoint Template

Microsoft PowerPoint - chap11

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

PowerPoint Presentation

PowerPoint Template

PowerPoint 프레젠테이션

FileMaker ODBC and JDBC Guide

Transcription:

java.lang 패키지 java.util 패키지 java.io 패키지 콜렉션 kkman@sangji.ac.kr 2

서로연관된클래스나인터페이스를하나의단위로묶는방법 자주사용되는클래스나인터페이스를위해패키지를제공 기본패키지 java.lang, java.util, java.io, java.net, java.awt, java.applet,... 사용자정의패키지 패키지이름은소문자로... kkman@sangji.ac.kr 3

import 문을사용하지않아도자바컴파일러에의해항상자동으로포함 java.lang 패키지에서제공하는인터페이스와클래스 [ 표 13.1] 과 [ 표 13.2] 참조, 교과서 489 쪽 Math 클래스 복잡한수학적계산을위한메소드들과상수들이제공상수 : E, PI( 교과서 491쪽 ) 메소드 abs(absolute value) sin, cos, tan, asin, acos, atan exp, pow, ceil, floor, log kkman@sangji.ac.kr 4

Runtime 클래스프로그램이실행되는환경과실행프로그램사이에인터페이스를가능하게해주는메소드들로구성 Thread 클래스 멀티스레드프로그램을구현하기위한메소드들을갖고있는클래스 ThreadGroup 클래스스레드들을그룹단위로다루기위한클래스 Class 클래스특정한객체에관련된클래스나인터페이스에관한정보를알려주는메소드들을갖고있는클래스 kkman@sangji.ac.kr 5

프로그래머에게유용한유틸리티클래스들을제공하는패키지 다양한표준프로그래밍자료구조체를지원하는클래스를제공 패키지의구성 [ 표 13.4] 와 [ 표 13.5] 참조, 교과서 495 쪽 패키지의계층구조 [ 그림 13.2] 참조, 교과서 497 쪽 kkman@sangji.ac.kr 6

Enumeration<E> 인터페이스열거형원소들을다루기위한인터페이스 [ 예제 13.3] 테스트 Collection<E> 인터페이스콜렉션계층구조에서최상위인터페이스 Iterator<E> 클래스콜렉션원소들에대한반복적인작업을용이하게처리할수있는메소드를갖고있는인터페이스콜렉션사용을위해반드시구현해야함 [ 예제 13.4] 테스트 Map<K,V> 인터페이스키와값을사상시키기위한인터페이스 kkman@sangji.ac.kr 7

Iterator<E> 인터페이스에대한예제 [ 예제 13.4 - IteratorInterface.java] import java.util.*; class SimpleList<E> implements Iterator<E> { private int size=0, index=0; E[] list; SimpleList(int len) { list = (E[])new Object[len]; void addnode(e i) { if (size < list.length)list[size++] = i; public String tostring() { return list[index].tostring(); public boolean hasnext() { return index < size; public E next() { if (index < size) return list[index++]; return null; public E first() { if (size > 0) return list[index = 0]; return null; public void remove() { if (size > 0) System.out.println("\n" + list[--size].tostring() + " is removed."); kkman@sangji.ac.kr 8

Iterator<E> 인터페이스에대한예제 [ 예제 13.4 - IteratorInterface.java](cont.) public class IteratorInterface { static void print(simplelist<string> sl) { while(sl.hasnext()) System.out.print(sl.next() + " / "); public static void main(string[] args) { SimpleList<String> sl = new SimpleList<String>(3); for (int i=0; i<3; i++) sl.addnode("value" + i); print(sl); sl.remove(); sl.first(); print(sl); 실행결과 : value0 / value1 / value2 / value2 is removed. value0 / value1 / kkman@sangji.ac.kr 9

Array 클래스정렬과검색등배열을다루기위한다양한메소드를포함하고있는클래스 [ 예제 13.5] 테스트 BitSet 클래스 동적으로커지는비트셋을생성하고다루는클래스 [ 예제 13.6] 테스트 Hashtable<K,V> 클래스주어진키를이용하여원하는자료값을찾아내는해쉬테이블을정의하고운영하는메소드들을제공하는클래스 [ 예제 13.7] 테스트 kkman@sangji.ac.kr 10

Array 클래스에대한예제 [ 예제 13.5 ArrayClass.java] import java.util.*; public class ArraysClass { public static void main(string[] args) { int i = 0; int [] array = new int [10]; while (i < array.length) array[i] = array.length - i++; System.out.print("Values : "); System.out.println(Arrays.toString(array)); Arrays.sort(array); System.out.print("Sorted Values : "); System.out.println(Arrays.toString(array)); System.out.print("Index of Value 10 is "); System.out.println(Arrays.binarySearch(array, 10)); 실행결과 : Values : [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] Sorted Values : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Index of Value 10 is 9 kkman@sangji.ac.kr 11

Random 클래스난수를생성하는데필요한메소드들을포함하고있는클래스 [ 예제 13.8] 테스트 StringTokenizer 클래스 주어진스트링을여백이나주어진구분자에의해토큰으로분류하는메소드를가지고있는클래스 [ 예제 13.9] 테스트 Date 클래스날짜와시간에관계된메소드들을갖는클래스 Calendar 클래스날짜와시간및특정시간정보간의변환에관계된필드와메소드들를가지고있는클래스 kkman@sangji.ac.kr 12

스트림클래스에바탕을둔 I/O 기능특정운영체제에종속되지않는입출력을수행추상클래스 InputStream, OutputStream 클래스계층구조 [ 그림 13.3] 참조 --- 교과서 509 쪽 최상위 I/O 클래스 InputStream : 입력에관련된모든메소드가정의된추상클래스 OutputStream : 출력에관련된모든메소드가정의된추상클래스 패키지에포함되어있는인터페이스와클래스 [ 표 13.6] 과 [ 표 13.7] 참조 --- 교과서 509 쪽인터페이스 : 12 개클래스입력관련 : 21 개출력관련 : 19 개 kkman@sangji.ac.kr 13

InputStream 클래스 모든입력스트림클래스의슈퍼클래스 입력에관련된기본적인메소드들을제공하는추상클래스 [ 예제 13.10] 테스트 OutputStream 클래스 모든출력스트림클래스의슈퍼클래스 기본적인출력에관한메소드를제공하는추상클래스 kkman@sangji.ac.kr 14

DataInputStream & DataOutputStream 클래스 기본형에따라입출력을행하는메소드들이정의되어있는클래스 DataInput 인터페이스와 DataOutput 인터페이스로부터상속받아구현된클래스 입력과출력에관련된각데이터형에따른메소드 [ 표 13.8] 참조 kkman@sangji.ac.kr 15

PipedInputStream 클래스 &PipedOutputStream 클래스 한스레드의출력을다른스레드의입력으로사용하고자할때유용한클래스 PipedOutputStream Output = new PipedOutputStream(); PipedInputStream Input = new PipedInputStream(Output); BufferedInputStream & BufferedOutputStream 클래스 입출력연산이직접입출력스트림을접근하는것을피하기위해중간에버퍼를두어처리할수있도록해주는클래스 kkman@sangji.ac.kr 16

FileInputStream & FileOutputStream 클래스 FileInputStream 클래스파일로부터데이터를읽기위해사용파일을열수없으면예외 (FileNotFoundException) 가발생 FileOutputStream 클래스데이터를파일에저장하기위해사용되어지는클래스 [ 예제 13.11] 테스트 FilterInputStream & FilterOutputStream 클래스 데이터를읽거나쓸때값을수정하는작업을부가적으로할수있는메소드들을갖고있는클래스 kkman@sangji.ac.kr 17

FileOutputStream 클래스에대한예제 [ 예제 13.11 - CopyFile.java] import java.io.*; public class CopyFile { public static void main(string[] args) { int c; OutputStream outfile; try { FileInputStream infile = new FileInputStream(args[0]); if (args.length == 1) outfile = System.out; else outfile = new FileOutputStream(args[1]); while ((c = infile.read())!= -1) outfile.write(c); infile.close(); outfile.close(); catch(exception e) { System.out.println("Error: " + e.tostring()); 실행방법 : javac CopyFile.java java CopyFile CopyFile.java CopyFile.txt kkman@sangji.ac.kr 18

ByteArrayInputStream & ByteArrayOutputStream 클래스 바이트배열을입력스트림의입력대상이나출력스트림의출력대상으로사용하는클래스 다른입출력스트림들과는달리블록되지않음 [ 예제 13.12] 테스트 PrintStream 클래스 텍스트형태로데이터를출력하기위해, FilterOutputStream 클래스를확장하여구현된클래스 kkman@sangji.ac.kr 19

File & RandomAccessFile 클래스 File 클래스 호스트플랫폼에의존적인파일이나경로명을기계에독립적으로다룰수있도록파일과경로명을다루는데있어추상화를제공 RandomAccessFile 클래스 임의접근파일시스템을제공하여 FileStream 보다다양한파일메커니즘을수행 kkman@sangji.ac.kr 20

여러개의원소를하나의단위로관리할수있는객체예 : 집합이나리스트, 테이블 종류단일형원소를갖는콜렉션클래스개개의원소들이값으로만구성 사상형원소를갖는콜렉션클래스 : 키 (key) 와값 (value) 의사상형태로구성 범용콜렉션구현표자료구조에따른제네릭클래스의종류 [ 표 13.9] 참조 kkman@sangji.ac.kr 21

콜렉션프레임워크 제네릭기능을사용한특정한클래스와인터페이스들을통해콜렉션을체계적으로구현한프레임워크 콜렉션을대상으로다음항목을유기적으로정의하여제공 내부자료구조의형태 자료구조를위한연산 사용할수있는알고리즘 주요특징 1. 라이브러리형태로제공하므로, 프로그래머의구현노력의경감 2. 쉽게사용할수있음 3. 프로그래머가이전에작성한유사한코드를쉽게재사용할수있음 kkman@sangji.ac.kr 22

계층구조 kkman@sangji.ac.kr 23

LinkedList<E> 클래스리스트연산에관련된모든연산이구현 null 을포함한모든형태의원소를허용 FIFO 연산을비롯한다양한형식의응용연산이가능 Deque<E> 인터페이스를구현 [ 예제 13.13] 테스트 ArrayList<E> 클래스 크기를조절할수있는배열. Vector<E> 클래스와유사한기능을제공동기화를지원하지않음 Vector<E> 클래스배열과같이정수인덱스를사용하여접근할수있는원소를가지고있음생성된후에도크기가동적으로변할수있음 [ 예제 13.14] 테스트 kkman@sangji.ac.kr 24

Stack<E> 클래스 스택의상태와운영을위한메소드를제공 [ 예제 13.15] 테스트 PriorityQueue<E> 클래스 우선순위힙을기반으로한제한이없는우선순위큐 HashSet<E> 클래스 Set<E> 인터페이스를해싱이가능하도록구현한클래스 [ 예제 13.16] 테스트 LinkedHashSet<E> 클래스 해시테이블과연결리스트가가능하도록 Set<E> 인터페이스를구현한클래스 kkman@sangji.ac.kr 25

Stack<E> 클래스의예제 [ 예제 13.15 - StackClass.java] import java.util.*; public class StackClass { public static void main(string[] args) { Stack<String> stk = new Stack<String>(); if (stk.empty()) System.out.println("Stack is initially empty."); stk.push("one"); stk.push("two"); stk.push("three"); System.out.println("stack top = " + stk.pop()); System.out.println("After stk.pop()"); System.out.println("stack top = " + stk.peek()); 실행방법 : Stack is initially empty. stack top = three After stk.pop() stack top = two kkman@sangji.ac.kr 26

TreeSet<E> 클래스 TreeMap<K,V> 클래스를기반으로 NavigableSet<E> 인터페이스를구현한클래스 add() 와 remove() 같은기본연산의시간복잡도 (time complexity) 를 log(n) 으로보장 [ 예제 13.17] 테스트 ArrayDeque<E> 클래스 크기를조절할수있는배열을 Deque<E> 인터페이스를이용해구현한클래스 kkman@sangji.ac.kr 27

개개의원소가키와값의쌍으로구성 계층구조 kkman@sangji.ac.kr 28

HashMap<K,V> 클래스 Map<K,V> 인터페이스를해싱이가능하도록구현한클래스 LinkedHashMap<K,V> 클래스 HashMap<K,V> 클래스를확장한클래스로, 해시테이블과연결리스트가가능하도록 Map<K,V> 인터페이스를구현한클래스 TreeMap<K,V> 클래스 Red-Black 트리구조를기반으로 NavigableSet<K,V> 인터페이스를구현한클래스 기본연산의시간복잡도를 log(n) 으로보장 kkman@sangji.ac.kr 29

HashMap<K,V> 클래스의예제 [HashMapClass.java] import java.uitl.*; public class HashMapClass { public static void main(string[] args) { HashMap<String, Integer> numbers = new HashMap<String, Integer>(); numbers.put("one", new Integer(1)); numbers.put("two", new Integer(2)); numbers.put("three", new Integer(3)); Integer value = numbers.get("two"); if (value!= null) System.out.println("two = " + value); 실행결과 : two = 2 kkman@sangji.ac.kr 30