VectorEx.java
import java.util.Vector;
public class VectorEx {
public static void main(String[] args) {
Vector<Integer> v = new Vector<Integer>(); // 정수 값만 다루는 벡터 생성
v.add(5); // 5 삽입
v.add(4); // 4 삽입
v.add(-1); // -1 삽입
v.add(2, 100); // 4와 -1 사이에 정수 100 삽입
System.out.println("벡터 내의 요소 객체 수 : " + v.size()); // 크기 4
System.out.println("벡터의 현재 용량 : " + v.capacity()); // 벡터 용량 10
// 모든 요수 정수 출력하기
for (int i = 0; i < v.size(); i++) {
int n = v.get(i);
System.out.println(n);
}
// 벡터 속의 모든 정수 더하기
int sum = 0;
for (int i = 0; i < v.size(); i++) {
int n = v.elementAt(i); // 벡터의 i 번째 정수
sum += n;
}
System.out.println("벡터에 있는 정수 합 : " + sum);
}
}
알아야 하는 것
자바는 모든 것을 클래스 객체로 다루기 때문에 벡터를 생성할 때 int가 아닌 Integer 타입이다.
Vector <Integer> v = new Vector <Integer> ();
v.add()
v.get()
v.size()
v.capacity()
v.elementAt()
PointVectorEx.java
import java.util.Vector;
class Point {
private int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public String toString() {
return "(" + x + "," + y + ")";
}
}
public class PointVectorEx {
public static void main(String[] args) {
Vector<Point> v = new Vector<Point>(); // Point 객체를 요소로 다루는 벡터 생성
// 3 개의 Point 객체 삽입
v.add(new Point(2,3));
v.add(new Point(-5,20));
v.add(new Point(30,-8));
v.remove(1); // 인덱스 1의 Point(-5, 20) 객체 삭제
// 벡터에 있는 Point 객체 모두 검색하여 출력
for(int i=0; i<v.size(); i++) {
Point p = v.get(i); // 벡터의 i 번째 Point 객체 알아내기
System.out.println(p); // p.toString()을 이용하여 객체 p 출력
}
}
}
알아야 하는 것
Vector 객체 내에 Point 타입도 들어갈 수 있다.
원래 객체 p를 출력하면 클래스명@주솟값이 나오지만 toString 메서드를 오버라이딩해서 상황에 맞게 쓸 수 있다.
ArrayListEx.java
import java.util.*;
public class ArrayListEx {
public static void main(String[] args) {
// 문자열만 삽입 가능한 ArrayList 생성
ArrayList<String> a = new ArrayList<String>();
// 키보드로부터 4개의 이름 입력 받아 ArrayList에 삽입
Scanner scanner = new Scanner(System.in); // Scanner 객체 생성
for (int i = 0; i < 4; i++) {
System.out.print("이름을 입력하세요>>");
String s = scanner.next(); // 키보드로부터 이름을 입력
a.add(s); // ArrayList 컬렉션에 삽입
}
// ArrayList에 들어 있는 모든 이름 출력
for (int i = 0; i < a.size(); i++) {
String name = a.get(i); // ArrayList의 i 번째 문자열 얻어오기
System.out.println(name + " ");
}
// 가장 긴 이름 출력
int longestIndex = 0; // 현재 가장 긴 이름이 있는 ArrayList 내의 인덱스
for (int i = 1; i < a.size(); i++) {
if (a.get(longestIndex).length() < a.get(i).length()) {
longestIndex = i;
}
}
System.out.println("\n가장 긴 이름은 : " + a.get(longestIndex));
scanner.close();
}
}
ArrayList<String> a = new ArrayList<String>(); 은
ArrayList<String> a = new ArrayList<>(); 나
var a = new ArrayList<String>();로 간략히 쓸 수 있음
ArrayList에서는 안 되고 Vector에서만 되는 메서드
elementAt() : get()과 비슷한 것(?)
capacity() : 벡터의 현재 용량 리턴
removeAllElements() : 벡터의 모든 요소를 삭제하고 크기를 0으로 만듦
HashMapDicEx.java
import java.util.*;
public class HashMapDicEx {
public static void main(String[] args) {
HashMap<String, String> dic = new HashMap<String, String>(); // 해시맵 생성
// var dic = new HashMap<String, String>();로 간략히 써도 됨.
// 3개의 (key, value) 쌍을 dic에 저장
dic.put("baby", "아기"); // "baby"는 key, "아기"은 value
dic.put("love", "사랑");
dic.put("apple", "사과");
// 사용자로부터 영어 단어를 입력 받고 한글 단어 검색. "exit" 입력 받으면 종료
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("찾고 싶은 단어는?");
String eng = scanner.next();
if (eng.equals("exit")) {
System.out.println("종료합니다...");
break;
}
// 해시맵에서 '키' eng의 값 kor 검색
String kor = dic.get(eng); //eng가 해시맵에 없으면 null 리턴
if (kor == null)
System.out.println(eng + "는 없는 단어 입니다.");
else
System.out.println(kor);
}
scanner.close();
}
}
알아야 하는 것
HashMap에는 값이 <key, value> 쌍으로 저장된다.
key 값을 이용하여 value 값을 찾는다.
dic.get(eng)를 했을 때 eng 값이 해시맵에 없다면 null이 리턴된다.
HashMapScoreEx.java
import java.util.*;
public class HashMapScoreEx {
public static void main(String[] args) {
// 이름과 점수를 저장할 HashMap 컬렉션 생성
HashMap<String, Integer> scoreMap = new HashMap<String,Integer>();
// var scoreMap = new HashMap<String, Integer>(); 로 간략히 써도 됨
// 5개의 점수 저장
scoreMap.put("김성동", 97);
scoreMap.put("황기태", 88);
scoreMap.put("김남윤", 98);
scoreMap.put("이재문", 70);
scoreMap.put("한원선", 99);
System.out.println("HashMap의 요소 개수 :" + scoreMap.size());
// 모든 사람의 점수 출력. scoreMap에 들어 있는 모든 (key, value) 쌍 출력
Set<String> keys = scoreMap.keySet(); // 모든 key를 가진 Set 컬렉션 리턴
Iterator<String> it = keys.iterator(); // Set에 있는 모든 key를 순서대로 검색하는 Iterator 리턴
while(it.hasNext()) {
String name = it.next(); // 다음 키. 학생 이름
int score = scoreMap.get(name); // 점수 알아내기
System.out.println(name + " : " + score);
}
}
}
알아야 하는 것
Keyset은 Map에는 없고 Set 컬렉션에 있다.
이터레이터를 활용해서 it.next()로 값을 가져올 수 있고
it.hasNext()로 다음 값이 있는지 판단할 수 있다.
'Java' 카테고리의 다른 글
| [Java] 제네릭 클래스 예제 (20-1) (0) | 2023.09.07 |
|---|---|
| [Java] 제네릭 클래스 예제 (검토 필요) (0) | 2023.09.02 |
| [Java] (interface 익명 구현 객체) (19-3) (0) | 2023.09.01 |
| [Java] (interface 익명 구현 객체) (19-2) (0) | 2023.08.31 |
| [Java] (interface 익명 구현 객체) (19-1) (0) | 2023.08.31 |