JAVA

Test164.java / 컬렉션 프레임워크(Collection Framework) / 벡터 - Vector

universedevelope 2022. 10. 29. 00:28
/* ========================================================================
	    ■■■ 컬렉션 프레임워크(Collection Framework) ■■■
=========================================================================*/

// 벡터 자료구조 객체 선언 및 생성 시
// 사용자 정의 클래스 활용
// → 자료형


import java.util.Vector;

// 사용자 정의 클래스 설계 → 자료형 활용
class MyData
{
	// 주요 속성 구성 → 주요 변수 선언(멤버 변수)
	private String name;	// 이름
	private int age;		// 나이

	//getXxx() → getter
	//setXxx() → setter

	// getter // setter 구성
	public String getName()
	{
		return name;
	}
	
	public void setName(String name)
	{
		this.name = name;
	}

	public int getAge()
	{
		return age;
	}

	public void setAge(int age)
	{
		this.age = age;
	}

	// 생성자(매개변수 2개인 생성자) → 사용자 정의 생성자
	public MyData(String name, int age)
	{
		this.name = name;
		this.age = age;
	}

	// 사용자 정의 생성자가 구성될 경우
	// default 생서자가 자동으로 삽입되지 않기 때문에
	// default 생성자 형태의 생성자를 사용자 정의 생성자로
	// 추가 구성하게 되는것이 일반적인 클래스 설계 과정
	// (단, 반드시 설계해야 할 필요는 없음)

	// 생성자 (매개변수 없는 생성자) → 사용자 정의 생성자
	public MyData()
	{
		name = "";
		age = 0;
	}

}

public class Test164
{
	public static void main(String[] args)
	{
		// 벡터 자료구조 생성
		Vector<MyData> v = new Vector<MyData>(); 
	
		/*
		MyData st1 = new MyData();
		st1.setName("홍은혜");
		st1.setAge(13);
		v.add(st1);
		
		MyData st2 = new MyData();
		st2.setName("김정용");
		st2.setAge(7);
		v.add(st2);

		MyData st3 = new MyData();
		st3.setName("이윤태");
		st3.setAge(87);
		v.add(st3);
		*/

		/*
		MyData st1 = new MyData("홍은혜", 13);
		v.add(st1);
		MyData st2 = new MyData("김정용", 7);
		v.add(st2);
		MyData st3 = new MyData("이윤태" 87);
		v.add(st3);
		*/
		
		v.add(new MyData("홍은혜", 13));
		v.add(new MyData("김정용", 7));
		v.add(new MyData("이윤태", 87));


		// 벡터 자료구조 v에 담긴 내용(요소) 전체 출력하기
		// 실행 예)
		// 이름 : 홍은혜, 나이 : 13
		// 이름 : 김정용, 나이 : 7
		// 이름 : 이윤태, 나이 : 87

	
		// 방법 1
		for ( MyData obj : v )
			System.out.printf("이름 : %s, 나이 : %d\n", obj.getName(), obj.getAge());
		System.out.println();	

		/*
		이름 : 홍은혜, 나이 : 13
		이름 : 김정용, 나이 : 7
		이름 : 이윤태, 나이 : 87
		*/
		
		// 방법 2
		for (int i = 0 ; i <v.size() ; i++ )
			System.out.printf("이름 : %s. 나이 : %d세\n", v.elementAt(i).getName(), v.elementAt(i).getAge());
		System.out.println();
		/*
		이름 : 홍은혜. 나이 : 13세
		이름 : 김정용. 나이 : 7세
		이름 : 이윤태. 나이 : 87세
		계속하려면 아무 키나 누르십시오 . .
		*/

		// 방법3
		for (Object temp : v)
		{
			System.out.printf("이름 : %s, 나이 : %d세\n", ((MyData)temp).getName(), ((MyData)temp).getAge()); // (MyData)temp -> 다운캐스팅
		}


	}
}
728x90