본문 바로가기

Java/java 기초

ArrayList

package main;

import java.util.ArrayList;
import java.util.List;

public class mainClass {
	public static void main(String[] args) {
//		List: 목록
//		
//		관리를 유동적으로 할 수 있는 배열
//		
//		목적: 데이터를 효울적으로 관리하기 위한 목록을 사용한다.
//		collection: 수집(데이터)
//		
//		List
//		
//		ArrayList(Vector)
//					배열처럼 사용할 수 있는 목록
//					선형구조 0-0-0-0-0-0-0
//					검색 속도가 빠르다.
//					index number 로 관리된다. 0 ~ (n-1)
//		
//		LinkedList(게임쪽에서 자주 사용)
//					빈번하게 추가, 삭제의 작업이 필요한 경우 사용하기 적합			
//		
//		Map
//		
//		HashMap
//					Map은 key and value로 관리된다	"apple":"사과" pair
//													"apple":"능금" //갱신되어 버린다.
//					xml -> Json key:value Json이 HashMap에 해당 된다.
//					key 중복을 허용하지 않음.
//					Tree 구조(검색 우수)
//		TreeMap
//					sorting
//		
		// 무조건 클래스가 들어가야한다
//		ArrayList<Integer> arrList = new ArrayList<Integer>(); 비어 놔도 된다
		ArrayList<Integer> arrlist = new ArrayList<>();
//		List<Integer> list = new ArrayList<Integer>();
		// 추가(뒤)
		arrlist.add(111);
		// 정석
		// 일반 클래스의 경우 생성후 주입
		Integer in = new Integer(222);
		arrlist.add(in);

		arrlist.add(new Integer(333));

		// list size
		int len = arrlist.size();
		System.out.println("list의 크기: " + len);

		// 산출
		Integer out = arrlist.get(0); // arrlist[0]
//		System.out.println(out);

		for (int i = 0; i < arrlist.size(); i++) {
			Integer var = arrlist.get(i);
			System.out.println("arrlist[" + i + "] = " + var);
		}
		System.out.println();
		for (Integer i : arrlist) {
			System.out.println(i);
		}
		System.out.println();

		// 원하는 위치
		Integer num = new Integer(123);
		arrlist.add(1, num);

		for (Integer i : arrlist) {
			System.out.println(i);
		}
		System.out.println();
		// 삭제
		arrlist.remove(2);

		for (Integer i : arrlist) {
			System.out.println(i);
		}

		// 검색
		int findIndex = arrlist.indexOf(333); // 앞에서부터 찾아간다
//		int findIndex = arrlist.lastIndexOf(o) //뒤에서부터 찾아간다
		System.out.println();
		System.out.println("findIndex: " + findIndex);
		findIndex = -1;

		for (int i = 0; i < arrlist.size(); i++) {
			Integer var = arrlist.get(i);
			if (var == 123) {
				findIndex = i;
				break;
			}
		}
		System.out.println("findIndex: " + findIndex);

		// 수정
		Integer updateData = new Integer(555);
		arrlist.set(2, updateData);

		for (Integer i : arrlist) {
			System.out.println(i);
		}

		// String
//		
//		야구팀
//		
		System.out.println();
		ArrayList<String> foods = new ArrayList<String>();
		foods.add("치킨");
		foods.add(new String("보쌈"));
		String pork = new String("pork");
		foods.add(pork);
		// 출력
		for (String s : foods) {
			System.out.println(s);
		}
		System.out.println();
		// 삭제
		foods.remove(2);
		for (String s : foods) {
			System.out.println(s);
		}
		// 검색
		findIndex = -1;
		for (int i = 0; i < foods.size(); i++) {
			if (foods.get(i).equals("보쌈")) {
				findIndex = i;
				break;
			}
		}
		System.out.println();
		System.out.println("findIndex = " + findIndex);
		System.out.println();
		// 수정
		String name = new String("원할머니 보쌈");
		foods.set(1, name);
		for (String s : foods) {
			System.out.println(s);
		}

		ArrayList<MemberDto> memList = new ArrayList<MemberDto>();
		MemberDto memberDto1 = new MemberDto();
		
		memberDto1.setNumber(0);
		memberDto1.setName("보쌈");
	
		
		MemberDto memberDto2 = new MemberDto();
		
		memberDto2.setNumber(1);
		memberDto2.setName("치킨");
		
		memList.add(memberDto1);
		memList.add(memberDto2);
		
		for (MemberDto memberDto : memList) {
			System.out.println(memberDto);
		}
		
		findIndex = -1;
		for (int i = 0; i < memList.size(); i++) {
			if(memList.get(i).getName().equals("치킨")) {
				findIndex = i;
			}
		}
		System.out.println("findIndex = " + findIndex);
		
		MemberDto memberDto3 = new MemberDto();
		memberDto3.setNumber(2);
		memberDto3.setName("돈까스");
		
		
//		memList.remove(findIndex);
		memList.set(findIndex, memberDto3);
		
		for (MemberDto memberDto : memList) {
			System.out.println(memberDto);
		}
	}
}