//coffee에 "사라다빵"을 추가하려면?
String[] coffee = new String[]{"따아","연유라떼","아샷추"};
String[] 배열 coffee안에 "따아", "연유라떼", "아샷추"가 추가되어있다.
마지막 자리에 "바닐라라떼"를 추가하고 싶을 때 쓰는 방법을 알아보자.
( ArrayList를 쓰면 편하겠지만 안쓰고 하는 방법에 대해 알아보려고 함)
Python을 한 사람은 알것이다. coffee 배열에 coffee.append("바닐라라떼")라고 하면 되겠지?
[Python]
# 기존 리스트
음료목록 = ["따아", "연유라떼", "아샷추"]
# 새로운 요소 추가
음료목록.append("바닐라라떼")
# 결과 출력
print(음료목록)
파이썬은 아주 쉽게 된다.
자바는 ㄴㄴ안됨
왜냐면
자바의 배열 특성 상, 특정 인덱스에 접근하려면 그 인덱스의 자리가 있어야함.
리스트의 크기가 3으로 정해져 있는데 하나를 더 추가할 경우 "Exception"에러가 발생함.
그래도 ArrayList라고 하는녀석은 배열의 크기를 자동으로 조절해줘서 따로 인덱스 자리확보를 안해도됨
int coffeeLength = coffee.length+1;
그래서 우선 coffee배열의 크기를 가지고 와서 뒤에 추가할 데이터의 수만큼 + 해줌
String[] coffee2 = new String[coffeeLength];
그런 다음 coffee2라는 배열을 하나 더 생성해서 배열의 크기를 coffeeLength만큼 생성해줌
for (int i=0; i<coffee.length; i++) {
coffee2[i] = coffee[i];
}
coffee2[3] = "바닐라라떼";
for문으로 coffee에 있는 데이터들을 coffee2에도 똑같이 넣어준다음
늘어난 인덱스를 가진 coffee2의 원하는 자리에 "바닐라라떼"를 넣어주면 배열뒤에 데이터를 넣을 수 있음.
for (String menu : coffee2) {
System.out.println(menu);
}
출력해보자
Perfect
String[] coffee = new String[5];
그래서 사실 이런식으로 인덱스의 자리를 확보해주고 난 뒤 데이터를 넣어주는게 좋긴하지만
기존 배열에서 추가해줘야 할 경우 첫번째 방법대로 해주는게 맞다.
사실 고정된 자리가 필요한 경우, 간단한 데이터 구조나 성능이 중요한 경우에만 배열을 쓰고
그게 아닐경우에는 ArrayList를 써주는게 좋음.
'JAVA > Coding' 카테고리의 다른 글
[날씨API] JavaScript에 OpenWeatherMap을 사용해 날씨를 불러와보자. (1) | 2024.11.19 |
---|---|
[JAVA] 자바FX로 로그인, 회원가입 창 만들기 + mysql(자세한 설명) (32) | 2023.09.12 |
[JAVA] AWT로 창띄우고 버튼과 메모지 만들기 - member, anonymous inner class사용 (0) | 2023.09.05 |
[JAVA] 자바 소켓(Socket)통신 이란? 코드 구현 (0) | 2023.09.01 |
[JAVA] TCP/IP란? 자바로 구현해보기 (0) | 2023.08.13 |