Data Structure
데이터를 조직하고 관리하는 방법을 의미
여러 개의 데이터를 하나의 변수에 저장할 수 있는 구조를 제공
- CRUD 가 가능해야한다. (신규데이터를 생성, 읽기, 갱신, 삭제 할 수 있어야한다.)
but 기본 배열 Array문법은 생성 시 배열크기를 먼저 정해둬야하고 추후 크기변경이 불가하다 > 추가 생성에 제약이 있음!
따라서 자바에서는 개수제한없이 데이터를 마음대로 추가할 수 있는 ArrayList, HashMap를 사용한다.
그 중 ArrayList에 대해 먼저 배워보자!
ArrayList:
- 구조: 동적 배열(크기가 고정되지 않고, 필요에 따라 자동으로 크기를 조절할 수 있는 배열)을 기반으로 하며, 요소를 순차적으로 저장합니다.
- 중복 허용: 동일한 값을 여러 번 저장할 수 있습니다.
- 순서 유지: 요소가 삽입된 순서를 유지합니다.
이름 String 을 저장하는 ArrayList만들기
ArrayList<String> nameList=new ArrayList<>();
//ArrayList도 클래스
//Arraylist 만들땐 변수이름에 List 붙여줌
// <> ArrayList안에 어떤 데이터 저장할지 알려줌
ArrayList도 자바의.클래스
Arraylist 만들땐 변수이름에 List 붙여주는쪽이 좋다
<> ArrayList안에 어떤 데이터형으로 저장할지 지정해준다.
다이아몬드 연산자(Diamond Operator)
ArrayList<Memo> memoList = new ArrayList<Memo>(); 대신
ArrayList<Memo> memoList = new ArrayList<>();로 사용합니다.
데이터 추가 CRUD의 C add()
// 데이터 추가 CRUD의 C add()
nameList.add("홍길동");
nameList.add("김나나");
nameList.add("Mikey");
데이터를 저장하는 함수 add(), addAll()
int index = 어디에 추가할지도 정할 수 있음
안정하면 마지막 인덱스에 저장
* 항상 CPU의 첫번째는 [0] 인점을 주의하자
데이터 가져오기 CRUD의 R get()
//데이터 가져오기 CRUD의 R
System.out.println(nameList.get(0)); // 자바에서의 배열은 0부터 시작
System.out.println(nameList.get(1));
System.out.println(nameList.get(2));
데이터 수정하기 CRUD의 U set()
//데이터 수정하기 CRUD의 U
nameList.set(1,"홍나나");
System.out.println(nameList.get(1));
인덱스 넘버와 바꿀 변수값 입력
데이터 삭제하기 CRUD의 D remove()
인덱스 넘버로 삭제도 가능하고
오브젝트로도 (데이터) 삭제 가능하다.
▶ Arraylist에 동일 데이터가 있을경우 (홍나나가 2명일경우) 첫번째 홍나나가 삭제된다.
int 을 저장하는 ArrayList 만들때의 주의점
객체를 저장(heap에 생성)하는 것이니 클래스명으로!
not int, yes Integer
* 객체로 저장하는 편이기때문에 int만 들어가는 배열을 쓰는일은 많이 없다.
* Java는 기본형을 객체로 자동 변환하는 auto-boxing 기능을 제공합니다.
즉, int 값을 ArrayList<Integer>에 추가할 때, 컴파일러가 자동으로 Integer 객체로 변환해줍니다.
예를 들어, list.add(1);은 실제로 list.add(Integer.valueOf(1));와 같은 방식으로 처리됩니다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
//가격을 저장하는 Arraylist
ArrayList<Integer> priceList =new ArrayList<>();
priceList.add(3000);
priceList.add(5000);
priceList.add(10000);
priceList.add(3000);
priceList.add(3000);
}
}
* data는 복수형이다 (2개이상) Datum"이 단수형
* DataBase 데이터를 영구 저장하는 소프트웨어