컬렉션 프레임워크_ArrayList

0

Java 공부

목록 보기
17/18
  • 프로그램 구현에 필요한 자료구조(Data Structure)를 구현해 놓은 라이브러리
  • 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다.
  • 이러한 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현된다.

주요 인터페이스

컬렉션 프레임워크에서 데이터를 저장하는 자료 구조에 따라 핵심이 되는 주요 인터페이스들이 있다.

  • List 인터페이스
  • Set 인터페이스
  • Map 인터페이스

    List와 Set 인터페이스는 모두 베이스 타입이 Collection 인터페이스이지만 약간의 차이가 있다. 또한 Map 인터페에스는 구조상의 차이로 별도로 정의 된다.


List 인터페이스

  • Collection 하위 인터페이스
  • 객체를 순서에 따라 저장하고 관리 하는데 필요한 메서드가 선언된 인터페이스
  • 배열의 기능을 구현하기 위한 인터페이스
  • ArrayList, Vector, LinkedList 등이 많이 사용된다.

ArrayList

MemberArrayList

import java.util.ArrayList;
import collection.Member;

public class MemberArrayList {

	private ArrayList<Member> arrayList;

	public MemberArrayList() {
		arrayList = new ArrayList<Member>();
	}

	public void addMember(Member member) {
		arrayList.add(member);
	}

	public void showAll() {
		for (Member member : arrayList) {
			System.out.println(member);
		}
//		System.out.println(arrayList);
	}

	public boolean removeMamber(int memberId) {
		for (int i = 0; i < arrayList.size(); i++) { // 4개의 요소가 있다면 arrayList.size()는 0,1,2,3 이된다.
			Member member = arrayList.get(i);
			int tempId = member.getMemberId(); //
			if (memberId == tempId) {
				arrayList.remove(i);
				return true;
			}
		}
		System.out.println(memberId + " 가 존재하지 않습니다.");
		return false;
	}
}

MemberArrayListTest

import collection.Member;

public class MemberArrayListTest {

	public static void main(String[] args) {
		
		MemberArrayList memberArrayList = new MemberArrayList();
		
		Member Lee = new Member(1001, "이순신");
		Member Kim = new Member(1002, "김유신");
		Member Park = new Member(1003, "박명수");
		
		memberArrayList.addMember(Lee);
		memberArrayList.addMember(Kim);
		memberArrayList.addMember(Park);
		
		memberArrayList.showAll();
		
		memberArrayList.removeMamber(1002);
		System.out.println("-----변경후-----");
		memberArrayList.showAll();
	}
}

이순신회원님의 아이디는1001 입니다.
김유신회원님의 아이디는1002 입니다.
박명수회원님의 아이디는1003 입니다.
-----변경후-----
이순신회원님의 아이디는1001 입니다.
박명수회원님의 아이디는1003 입니다.

0개의 댓글