[자료구조] ArrayList 구현 - add/addFirst, 데이터를 중간/처음에 추가 [Java]

2020. 3. 12. 22:36·자료구조 + 알고리즘

 

 


 

 

add를 구현하고, 이를 활용하여 addFirst를 구현해보자.


중간에 넣으면 하나씩 하나씩 뒤로 땡긴다 -> 시간이 많이 걸린다.

Array를 통한 List의 최대 단점이다.

 

LinkedList배울때 왜 저게 단점인지 극명하게 드러난다.


 

자 중간에 어떤 값을 넣으려면.. (예를들어 numbers.add(1, 15);)

 

맨 끝에 있는 data를 한 칸씩 뒤로 빼서 자리를 만들어 주어야 한다.

그러려면 코드를 어떻게 짜줘야 할까?

 

참고: ArrayList에 내재된 배열 이름을 elementData로 정해줬었다.

 

elementData[4] = elementData[3];

elementData[3] = elementData[2];

elementData[2] = elementData[1];

이렇게 써줘야 뒤로 한칸씩 밀리지!!

여기서 패턴을 찾아줄 필요가 보인다. 

 

add라는 메소드를 부르려면 구현해줘야 하니까..

일단 ArrayList.java로 가서 add메소드를 구현해주자. 그리고 발견한 규칙에 따라 반복문을 쓰자.

 

반복문을 어떻게 써볼까에 대한 고민

감이 온다 스스로도 잘 했따 

 

자 한칸씩 미는 코드를 작성했으니까, 다음엔 해당 인덱스에 값을 넣겠구나

그럼 for문 밑에 써주면 되지 간단하게~!!>.<

점점 익숙해진다 ㅎ.ㅎ

아 챰!!!! 주의할 것... ArrayList에 값 하나 add했지 -> size가 하나 늘어나지..

그래서 size++ 해줘야 함!! 너 왜 이걸 잊니!

나중에 LinkedList와 ArrayList의 장단점을 비교할 때 볼 코드라고 한다. 오케이~


addFirst도 이 개념을 연동해서 구현할 수 있다!!!

오아.. 그래 이미 구현한 메서드를 적극적으로 활용할 수 있지 충분히!!! 당연하지>0<

 

첫번째 데이터에 값을 저장하는 메서드인 addFirst를 구현해보자.

간단히.. 0번 인덱스에 넣고 나머지는 쭈루룩 밀면 되잖아!! (결국 add와 같은 내용이니 add를 리턴하자는 거!!)

 

어 그런데 저기 구현해준 클래스에, addFirst부분이 add를 리턴하는데도, addFirst가 add의 윗줄로 갈 수 있다고 하네..??!

왜지...?? 상관 없나..? / 질문 올렸따!!!!

 


 

반응형

'자료구조 + 알고리즘' 카테고리의 다른 글

[자료구조] ArrayList 구현 - toString사용, 데이터 확인하기 [Java]  (0) 2020.03.17
[자료구조] ArrayList 구현 - get, 데이터 가져오기 [Java]  (0) 2020.03.16
[자료구조] ArrayList 구현 - addLast, 데이터를 끝에 추가 [Java]  (0) 2020.03.11
[자료구조] ArrayList 구현 - 객체생성 [Java]  (0) 2020.03.10
[자료구조] Array List [JAVA]  (0) 2020.03.09
'자료구조 + 알고리즘' 카테고리의 다른 글
  • [자료구조] ArrayList 구현 - toString사용, 데이터 확인하기 [Java]
  • [자료구조] ArrayList 구현 - get, 데이터 가져오기 [Java]
  • [자료구조] ArrayList 구현 - addLast, 데이터를 끝에 추가 [Java]
  • [자료구조] ArrayList 구현 - 객체생성 [Java]
히어로맛쿠키
히어로맛쿠키
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (389)
      • 미분류글 (32)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (28)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (59)
      • yyeeennyy (25)
  • 공지사항

    • ^o^/♡
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
히어로맛쿠키
[자료구조] ArrayList 구현 - add/addFirst, 데이터를 중간/처음에 추가 [Java]
상단으로

티스토리툴바