본문 바로가기
개발일지

개발일지 15일차 -ArrayList-

by 태운콩즙 2023. 12. 15.
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
반응형