abstract class PairMap{
protected String keyArray []; //key들을 저장하는 배열
protected String valueArray []; //value들을 저장하는 배열
abstract String get(String key); //key값을 가진 value 리턴, 없으면 null
abstract void put(String key, String value); //key와 value를 쌍으로 저장, 기존에 키가 있으면, 값을 수정
abstract String delete(String key); //key값을 가진 아이템(value와 함께) 삭제, t삭제된 value값을 리턴
abstract int length(); //현재 저장된 아이템의 개수 리턴
}
class Dictionary extends PairMap{
private int num;
public Dictionary(int n) {
keyArray = new String[n];
valueArray = new String[n];
num = 0;
}
@Override
String get(String key) {
for(int i = 0;i<keyArray.length;i++) {
if(key.equals(keyArray[i])) {
return valueArray[i];
}
}
return null;
}
@Override
void put(String key, String value) {
// TODO Auto-generated method stub
for(int i = 0;i<keyArray.length;i++) {
if(key.equals(keyArray[i])) {
keyArray[i] = key;
valueArray[i] = value;
return;
}
}
keyArray[num] = key;
valueArray[num] = value;
num++;
}
@Override
String delete(String key) {
for(int i = 0;i<keyArray.length;i++) {
if(key.equals(keyArray[i])) {
String str = valueArray[i];
keyArray[i] = null;
valueArray[i] = null;
return str;
}
}
return null;
}
@Override
int length() {
// TODO Auto-generated method stub
return num;
}
}
public class DictionaryApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
Dictionary dic = new Dictionary(10);
dic.put("황기태", "자바");
dic.put("이재문","파이썬");
dic.put("이재문","c++");
System.out.println("이재문의 값은 "+dic.get("이재문"));
System.out.println("황기태의 값은 "+dic.get("황기태"));
dic.delete("황기태");
System.out.println("황기태의 값은 "+dic.get("황기태"));
}
}
결과
이재문의 값은 c++
황기태의 값은 자바
황기태의 값은 null
'명품JAVA프로그래밍 > 5장 상속' 카테고리의 다른 글
[명품JAVA프로그래밍] 5장 실습문제 12번 (0) | 2022.01.17 |
---|---|
[명품JAVA프로그래밍] 5장 실습문제 11번 (0) | 2022.01.17 |
[명품JAVA프로그래밍] 5장 실습문제 9번 (0) | 2022.01.13 |
[명품JAVA프로그래밍] 5장 실습문제 8번 (0) | 2022.01.12 |
[명품JAVA프로그래밍] 5장 실습문제 7번 (0) | 2022.01.12 |