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);
}
}
}