일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스프링 빈
- GoingBus
- 리눅스마스터 1급 정리
- 리눅스
- Kotlin
- Java
- toCharArray
- 리눅스마스터1급
- 카카오
- JavaScript
- map
- 백준 java
- 스프링 컨테이너
- 코딩테스트
- 명령어
- 자바스크립트 코딩의 기술
- 코테
- 리눅스마스터 3과목
- 월간코드챌린지
- Memoir
- 문자열
- 연습문제
- Linux
- 고잉버스
- 반복문
- 개발자 회고록
- 프로그래머스
- 백준 javascript
- java 백준 1차원 배열
- 자바
- Today
- Total
hoon's bLog
Java ArrayList 선언, 추가, 삭제, 출력 본문
안녕하세요.
이번 시간에는 ArrayList에 대해서 알아보도록 하겠습니다.
ArrayList란?
ArrayList는 List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 선형 리스트입니다.
일반적인 배열과 같은 순차 리스트이며 인덱스로 내부의 객체를 관리한다는 점 등이 유사하지만,
한번 생성되면 크기가 변하지 않는 배열과는 달리,
ArrayList는 객체들이 추가되어 저장 용량(capacity)을 초과한다면,
자동으로 부족한 크기만큼 저장 용량(capacity)이 늘어난다는 특징을 가지고 있습니다.
ArrayList 사용법
이전에 배열이나 리스트에서 알아보셨던걸 토대로,
그 부분을 생각하시면서 보시면 훨씬 더 이해가 빠르실 거라 믿습니다!
먼저 ArrayList 선언하는 법에 대해서 알아보겠습니다.
ArrayList 선언
ArrayList list = new ArrayList();//타입 미설정 Object로 선언된다.
ArrayList<Student> members = new ArrayList<Student>();//타입설정 Student객체만 사용가능
ArrayList<Integer> num = new ArrayList<Integer>();//타입설정 int타입만 사용가능
ArrayList<Integer> num2 = new ArrayList<>();//new에서 타입 파라미터 생략가능
ArrayList<Integer> num3 = new ArrayList<Integer>(10);//초기 용량(capacity)지정
ArrayList<Integer> list2 = new ArrayList<Integer>(Arrays.asList(1,2,3));//생성시 값추가
ArrayList선언 시 ArrayList list = new ArrayList()로 선언 후 내부에 임의의 값을 넣고 사용할 수도 있지만,
이렇게 사용할 경우 값을 뽑아내기 위해서는 캐스팅(Casting) 연산이 필요하고 잘못된 타입으로 캐스팅을 한 경우,
에러가 발생하기에 위와 같은 방식은 추천하지 않습니다.
ArrayList를 사용할 시에는 ArrayList에 타입을 명시해주는 것이 좋습니다.
제너릭스(Generics)라는 개념이 도입되었습니다.
ArrayList<String> list = new ArrayList<String>();
위와 같이 선언 시, String객체들만 add되어질 수 있고,다른 타입의 객체는 사용이 불가능합니다.
※ 제네릭스는 선언할 수 있는 타입이 객체 타입입니다.
int는 기본자료형이기 때문에 들어갈 수 없으므로 int를 객체화시킨 wrapper클래스를 사용해야 합니다.
(제네릭스에 대해서는 추후에 좀 더 자세하게 알아보도록 하겠습니다.)
ArrayList 값 추가
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(3); //값 추가
list.add(null); //null값도 add가능
list.add(1,10); //index 1뒤에 10 삽입
ArrayList<Student> list = new ArrayList<Student>();
Student student = new Student(name,age);
members.add(student);
members.add(new Member("홍길동",15));
ArrayList 값 삭제
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
list.remove(1); //index 1 제거
list.clear(); //모든 값 제거
ArrayList에 값을 제거하려면 ArrayList의 remove(index) 메서드를 사용하면 됩니다.
remove() 함수를 사용하여 특정 인덱스의 객체를 제거하면,
바로 뒤 인덱스부터 마지막 인덱스까지 모두 앞으로 1씩 당겨집니다.
모든 값을 제거하려면 clear() 메서드를 사용하면 됩니다.
ArrayList 값 출력
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
System.out.println(list.get(0));//0번째 index 출력
for(Integer i : list) { //for문을 통한 전체출력
System.out.println(i);
}
Iterator iter = list.iterator(); //Iterator 선언
while(iter.hasNext()){ //다음값이 있는지 체크
System.out.println(iter.next()); //값 출력
}
ArrayList의 get(index) 메소드를 사용하면 ArrayList의 원하는 index의 값이 리턴됩니다.
전체 출력은 대부분 for문을 통해서 출력을 하고 Iterator를 사용해서 출력을 할 수도 있습니다.
ArrayList 값 검색
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
System.out.println(list.contains(1)); //list에 1이 있는지 검색 : true
System.out.println(list.indexOf(1)); //1이 있는 index반환 없으면 -1
ArrayList에서 찾으려는 값을 검색하려면 ArrayList의 contains(value) 메서드를 사용하면 됩니다.
만약 값이 있다면 true가 리턴되고 값이 없다면 false가 리턴됩니다.
값을 있는 index를 찾으려면 indexOf(value) 메소드를 사용하면 되고 만약 값이 없다면 -1을 리턴합니다.
급하게 하다 보니 내용이 너무 부실했는데 이해가 되셨는지 모르겠습니다ㅠㅠ
당분간은 회사 야근이라는 핑계로 나태해질 것 같아요 ㅠㅠ...
야근 좀 마무리되면 여유 있는 마음으로, 초심 다잡고 포스팅 찾아뵙겠습니다.
이 하찮은 글 읽어주셔서 감사합니다:)
출처 : 자바의 정석 3rd Edition 내용 정리
'IT > Java' 카테고리의 다른 글
Java method Overriding, Overloading 자바 메서드 오버라이딩과 오버로딩 (0) | 2021.01.06 |
---|---|
Java class extends 자바 클래스 상속 (0) | 2021.01.06 |
Java List, Set, Map 컬렉션프레임워크(Collection Framework) (0) | 2021.01.05 |
Java String Array 배열 (0) | 2021.01.05 |
Java Array 자바 배열 사용 및 문법 (0) | 2021.01.05 |