자바기초강좌 교육자료] 헤쉬테이블(HashTable) 사용 예(2)

자바기초강좌 교육자료] 헤쉬테이블(HashTable) 사용 예(2)


헤쉬테이블(HashTable) 사용 예(2)

import java.util.*;

public class StudentHashtableTest {


  publicstatic void main(String[] args) {


  Hashtable table=new Hashtable();

  table.put("1",newStudent("Jee",1,"Seoul"));//0

  table.clear();//모두 제거

  table.put("2",newStudent("Gong",2,"Seoul"));//

  table.put("3",newStudent("Song",3,"Seoul"));//2

  table.put("4",newStudent("Lee",4,"Koyang"));//3

  table.put("4",newStudent("Lee",4,"Koyang"));//3과 중복x

  System.out.println(table.size());

  System.out.println(table.containsKey("4"));

  table.remove("3");

  Studentstu=(Student)table.get("2");//key

  System.out.println(stu.getId()+"  "+stu.getName()+"  "+stu.getAddr());


   //모든 elements 출력하기

  //Set set=table.keySet();//Map을 참고

  Enumeration enums=table.keys()

  while(enums.hasMoreElements()){


  Stringkey=(String)enums.nextElement() ;//핵심

  Student stus=(Student)table.get(key);

  System.out.println(stus.getId()+"  "+stus.getName()+"  "+stus.getAddr());

  }

  }

}


 

자바공부하기 130

J2SE 패키지 종류

 

java.lang

- java 프로그래밍에 필요한 기본요소 / java의 데이터 타입과 구문 문법에 관한 클래스가 정의 / 예외 상황과 스레드. 시스템 등의 클래스가 정의

 

java.io

- String 클래스에 바탕을 둔 I/O 기능을 제공 / 특정 운영체제에 종속되지 않는 입출력을 제공 / String 입출력, 파일입출력, 입출력에 관련된 예외 처리를 위한 클래스들이 포함

 

java.net

- Network와 관련된 클래스들

   소켓 연결과  URL 처리를 위한 클래스들로 구성

 

java.awt

- AWT는 Abstract Window Toolkit의 약자로 Java의 운영체제에 무관한 윈도우 생성툴을 지원 / 메뉴바, 스크롤바, 버튼, 프레임, 체크박스, 다이얼로그박스, 폰트 등에 관련한 사용자 그래픽 환경 구성을 위한 클래스들로 구성

 

java.applet

- Java applet을 만드는데 기본이 되는 Applet 클래스 제공

   init,start, display등의 메소드 등을 재정의하여 사용함

 

java.util

- 프로그래머에게 유용한 유틸리티 클래스를 제공 / 날짜와 시간, 비트 집합, 해쉬테이블, 렌덤, 스택 등 다양한 표준 프로그래밍 자료 구조체를 지원

 

javax.swing

- AWT 컴포넌트 보다 미려하고 풍부한 기능성을 갖춘 스윙 컴퍼넌트. Look and Feel 지원

 

java.beans

- S/W 컴포넌트 프로그래밍 모델 지원

 

java.sql

- 데이터 베이스 종류에 독립적인 데이터 베이트 접근 지원(JDBC)

 

 

** java.text, java.math, java.rmi, java.security

 

 

자바공부하기128

패키지사용법

 

패키지의 클래스와 인터페이스를 사용하기 위해서

Improt 문장을 사용하면 패키지 이름을 생략하고, 클래스/ 인터페이스 이름만을 사용할 수 있다.

* import 패키지이름.클래스이름

* import 패키지이름.*

 

: 부 패키지는 import 되지 않는다.

* 별도로 import해야함

* import java.awt.*라고 했다고 해서 java.awt.color.*까지 import되는 것은 아님

* 단지 java.awt 패키지 내의 클래스만 import

 

* 컴파일 시 자동으로 importjava.lang.*가 자동삽입

 

패키지 사용

 

 

 

 

JAVA공부하기 113.

내부클래스

 

- 내부 클래스의 모든 인스턴스는 그 클래스를 정의하거나 포함하고 있는 클래스의 인스턴스와 내부적으로 연관된다.

 

- 내부클래스의 메소드는 멤버클래스의 필드 뿐만아니라 그 클래스를 포함하고 있는 외부클래스의(Private필드 포함) 모든 필드 참조 가능

 

- 내부 클래스는 어떤 static 멤버도 가질 수 없다.

 

클래스 메소드 내부에는 묵시적으로 this 생략가능하다

 

멤버 클래스의 인스턴스 생성 방법

 

LinkecList aList = new LinkedList();

Enumerator naEnum = aList.new Enumerator();

 

 내부 클래스 예

 

 

JAVA공부하기 111

중첩클래스

 

- 중첩 클래스는 필드나 메소드가 클래스 내부에 정의될 수 있듯이 클래스가 다른 클래스의 멤버로 정의될 수 있는 기능을 의미한다.

 

- 코드 블록에서 변수를 정의하듯 클래스를 코드블록 내부에 정의한다.

: 기존에는 모두 클래스는 코드 블록 외부에 정의되었다.

 

- X$Y.class와 같은 형태의 클래스 파일

: X 클래스에 중첩된 Y클래스

 

 

 

자바공부하기 108

RTTI

 

- RTTI = Run-Time Type Information

 

-  Vector에 들어있는 Object가 실제 무슨 형인지 모르는 경우 컴파일은 되더라도 런타임타입캐스팅 에러 발생 가능성이 높다.

: ClassCastException

 

- 자바에서는 형 검사를 위해 instanceof 제공

 

- 사용방법

: 객체 instanceof 클래스

: 리턴값 true/false

 

 

 

 

↓↓

 

 

 

자바공부하기 105

 

추상클래스와 Interface의 Upcasting

 

* 자체적으로 객체 생성이 불가능

-  Upcasting 기법을 통해 객체 생성

-  가상 메서드를 통한 객체 은닉 구현

 

 

자바공부하기 101

벌써 자바공부하기 101번째 글이네요..^^

앞으로 계속 자바열공!!

 

추상클래스 VS 인터페이스

 

* 유사점

- 하위클래스에서 모든 추상 메서드를 구현해야함

- Upcasting이 가능함

 

* 차이점

-추상클래스

: 추상메서드 외 일반 멤버변슈와 메서드를 가질 수 있다.

: extends를 사용

: 단일 상속만 가능

: 작업의 레벨 분할을 위해서 사용

 

- Interface

: 추상 메서드와 static final 변수만 사용

: Implements를 사용

: 중복 구현 가능

: 공동작업을 위한 상호간의 인터페이스를 위해 사용

 

 

 

 

 

 

 

+ Recent posts