728x90
반응형
ArrayList란
특정 타입의 데이터를 여러 개 담아주기 위한 객체
Collection Framework의 한 종류
List(ArraryList...),Map(HashMap....),Set(HashSet)
List 라는 인터 페이스 타입을 구현한 ArrayList 클래스
담기는 데이터는 인덱스 번호를 가지며 인덱스는 0번부터 시작
ArrayList 객체 선언시 크기를 따로 지정하지 않으며, 데이터를 저장하는데로 크기가 늘어남
- 선언 문법
- 제네릭(<>)을 사용하며,<>안에는 클래스 이름만 올수있음
- 정수(int)를 다루는 List fkaus <int>가 아닌 <Integer>로 사용해야함
List<[클래스 타입]> [객체이름] = new ArrayList<[클래스 타입(좌변과 동일하게, 하지만 생략 가능)>();
//String 을 담는 strList 를 선언한다면
List<String> strList = new ArrayList<>();
//정수(int)를 담는 intLis를 선언한다면
List<Integer> intList = new ArrayList<>();
// 따로 정의한 회원 클래스(Member)을 담는 memberListm를 선언한다면
List<Member>memberList = new ArrayList<>();
주요 메서드
1. add() : 리스트에 데이터를 추가할때
i.add("담을 데이터"):순서대로 데이터를 추가함
ii.add(index번호,"담을 데이터"):해당 인덱스에 데이터를 추가하고 기존 데이터는 하나씩 밀림
2.get():리스트에서 데이터를 가져올때
i.get(index번호):해당 인덱스에 담긴 데이터를 가져옴
3.size():리스트에 담긴 데이터의 갯수를 반환(return type:int)
4 remove():데이터를 삭제할때
i.remove(index번호):해당 인덱스에 담긴 데이터를 삭제함
<예문1>
package ch11_array.ex2;
import java.util.ArrayList;
import java.util.List;
public class StudentMain {
public static void main(String[] args) {
// Student 클래스 객체를 담기 위한 List
// studentList
List<Student> studentList = new ArrayList<>(); // ArrayList 객체선언
// studentList.add(12); // x
String studentName = "학생1";
// studentList.add(studentName); // x
//Student 객체
Student student = new Student(1L,"학생1", "20231111" , "ㅇㄴㅁㄹ" , "01000000000");
//studentList 추가
studentList.add(student);
Student student1 = new Student(2L, "학생2" , "20232222" , "컴공" , "01022222222");
studentList.add(student1);
System.out.println("studentList = " + studentList.get(0));
System.out.println("studentList = " + studentList.get(1));
Student a = studentList.get(0);
System.out.println("a = " + a);
System.out.println(a.getStudentName());
System.out.println(studentList.get(1).getStudentMajor());
// 반복문
for (int i = 0; i < studentList.size(); i++){
System.out.println("studentList = " + studentList.get(i));
//학생 이름만 따로 출력
System.out.println("studentList = " + studentList.get(i).getStudentName());
}
//for each
for (Student stu: studentList){
System.out.println("stu = " + stu);
// 이름만
System.out.println("studentName = " + stu.getStudentName());
}
}
}
예문1 을 보면 student 객체를 선언 한뒤 그 정보를 매개변수로 입력하고 add() 를 사용하여 List에 담아주었다
<예문2>
package ch11_array.ex3;
import java.util.ArrayList;
import java.util.List;
public class BookMain {
public static void main(String[] args) {
// Book 객체를 담기위한 bookList 객체 선언
List<Book> bookList = new ArrayList<>();
// 기본생성자로 Book 객체(book1) 생성 후 bookList에 추가
Book book1 = new Book();
// book1.setId(1L);
book1.setBookTitle("이름1");
book1.setBookPrice(18000);
book1.setBookAuthor("감자나라 김감자");
book1.setBookPublisher("감자 출판사");
bookList.add(book1);
// 매개변수 생성자로 Book 객체(book2) 생성 후 bookList에 추가
Book book2 = new Book("이름2" , "감자나라 임감자" , 30000 , "감자 출판사");
bookList.add(book2);
Book book3 = new Book("이름3" , "응우옌" , 25000 , "감자 출판사");
bookList.add(book3);
// for를 이용하여 bookList의 전체 데이터 출력
for (int i = 0; i<bookList.size(); i++){
System.out.println("bookList = " + bookList.get(i));
}
// for each를 이용하여 bookList의 전체 데이터 출력
for (Book book: bookList){
System.out.println("book = " + book);
}
// list의 0번 인덱스에 담긴 책의 가격을 50000으로 변경
bookList.get(0).setBookPrice(50000);
// list의 1번 인덱스에 담긴 출판사의 제목을 "안녕출판사"로 변경
bookList.get(1).setBookPublisher("안녕 출판사");
// for를 이용하여 bookList의 전체 데이터 출력
for (int i = 0; i < bookList.size(); i++) {
System.out.println("bookList = " + bookList.get(i));
}
// for each를 이용하여 bookList의 전체 데이터 출력
for (Book book: bookList){
System.out.println("book = " + book);
}
}
}
예문 2 는 add() 를 사용하여 데이터를 입력해주는 것과
get를 사용하여 인덱스 번호를 불러오는것과 입력된 값에 내용을 변경하는내용이다
728x90
반응형
'개발일지' 카테고리의 다른 글
개발일지 17일차 -class 역할 분리 응용- (0) | 2023.12.18 |
---|---|
개발일지 16일차 -Class 역할 분리- (1) | 2023.12.15 |
개발일지 14일차 -Override,Overloding- (0) | 2023.12.14 |
개발 일지 13일차 - 메서드- (0) | 2023.12.12 |
개발일지 12일차 -객체 지향 프로그래밍- (1) | 2023.12.11 |