JAVA
12. Java 어레이 리스트(ArrayList) 사용하기
oioioa
2024. 12. 17. 16:51
ArrayList 만들기
public class Main {
public static void main(String[] args) {
// 이름을 저장하려고 한다.
// 자바의 Array(배열)은, 처음 만들때 갯수를 정해야 하므로
// 프로그램을 유연하게 만들수가 없다.
// 따라서, 갯수 제한없이 데이터를 마음대로 추가할수 있는
// ArrayList 를 사용한다.
ArrayList<String> nameList = new ArrayList<>();
데이터 추가, 억세스하기(add() 메서드 를 사용)
// 데이터 추가 : CRUD 의 C
nameList.add("홍길동");
nameList.add("김나나");
nameList.add("Mike");
데이터 가져오기
// 데이터 가져오기 CRUD 의 R
// 첫번째(인덱스) 데이터를 가져온다. 자바에서는 처번째를 == 0
System.out.println(nameList.get(0) );
System.out.println(nameList.get(2) );
데이터 수정하기
// 데이터 수정 : CRUD 의 U
nameList.set(1,"홍나나");
데이터 삭제하기
// 데이터 삭제 : CRUD 의 D
// "홍나나" 를 지정하여 삭제
nameList.remove("홍나나");
// 인덱스를 지정하여 삭제
// nameList.remove(1);
Arraylist 에 저장된 데이터의 갯수를 확인하는 함수
// 어레이리스트에 저장된 데이터의 갯수를 확인하는 함수
System.out.println(nameList.size() );
오리지날 반복문을 이용해서, 데이터 가져오는 방법
// 오리지날 반복문을 이용해서, 데이터를 가져오기
for(int i = 0 ; i < nameList.size() ; i++){
System.out.println(nameList.get(i) );
실무에서 많이 사용하는 방법으로 데이터를 가져오는 방법
// 실무에서 많이 사용하는 방법으로 데이터를 모두 가져오시기
for ( String name : nameList ){
System.out.println(name);
}
데이터를 초기화 하는 방법
// 저장된 데이터가 모두 필요없다.
// 따라서 데이터를 초기화 하고 싶다.(실무사용)
nameList.clear();
ArrayList 가 비어있는지 확인하는 방법
// 어레이리스트가 비어있는지 확인하는 함수 isEmpty()
System.out.println(nameList.isEmpty() );
System.out.println(nameList.size());
ex)
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// 가격을 저장하는 어레이 리스트를 만들겠습니다.
ArrayList<Integer> priceList = new ArrayList<>();
priceList.add(3000);
priceList.add(5000);
priceList.add(10000);
priceList.add(3000);
priceList.add(3000);
// 실무방법 => for each 방식,
for ( int price : priceList){
System.out.println(price);
}
// 두번째 데이터만 가져와서 5를 곱해서 출력.
System.out.println(priceList.get(1) * 5);
priceList.set(4, 1000);
for ( int price : priceList){
System.out.println(price);
}
priceList.remove(1);
for ( int price : priceList){
System.out.println(price);
}
priceList.remove(Integer.valueOf(3000));
priceList.remove(1);
for ( int price : priceList){
System.out.println(price);
}
priceList.clear();
System.out.println(priceList.size());
}
}
Main
import controller.StudentManager;
import entity.Student;
public class Main {
public static void main(String[] args) {
StudentManager manager = new StudentManager();
// TODO: 최소 3명의 학생을 생성하고 manager에 추가하세요.
// id 1, 홍길동, 30
Student s1 = new Student(1,"홍길동",30);
// id 2, 김나나, 22
Student s2 = new Student(2,"김나나", 22);
// id 3, 최영수, 25
Student s3 = new Student(3,"최영수",25);
manager.addStudent(s1);
manager.addStudent(s2);
manager.addStudent(s3);
// TODO: 모든 학생 정보를 출력하세요.
manager.displayAllStudents();
// TODO: ID로 한 명의 학생을 검색하고 그 정보를 출력하세요.
// id 가 3인 학생 검색하여 출력.
manager.findStudent(3).print();
// TODO: 한 명의 학생을 삭제하세요. id가 1인 학생 삭제.
manager.removeStudent(1);
manager.displayAllStudents();
// TODO: 삭제 후 모든 학생 정보를 다시 출력하세요.
}
}
StudentManager
package controller;
import entity.Student;
import java.util.ArrayList;
public class StudentManager {
private ArrayList<Student> students;
public StudentManager() {
// TODO: students ArrayList를 초기화하세요.
students = new ArrayList<>();
}
public void addStudent(Student student) {
// TODO: 학생을 ArrayList에 추가하는 코드를 작성하세요.
students.add(student);
}
public void removeStudent(int id) {
// TODO: 주어진 id와 일치하는 학생을 ArrayList에서 제거하는 코드를 작성하세요.
// 힌트: ArrayList의 remove() 메소드를 사용하세요.
for (Student student : students){
if (student.getId() == id)
// 어레이 리스에서 삭제
students.remove(student);
return;
}
}
public Student findStudent(int id) {
// TODO: 주어진 id와 일치하는 학생을 찾아 반환하는 코드를 작성하세요.
// 힌트: for 루프를 사용하여 ArrayList를 순회하며 찾습니다.
for (Student student : students ){
if (student.getId() == id)
return student;
}
return null; // 찾지 못한 경우 null 반환
}
public void displayAllStudents() {
// TODO: 모든 학생의 정보를 출력하는 코드를 작성하세요.
// 힌트: for-each 루프를 사용하여 ArrayList를 순회하며 각 학생 정보를 출력합니다.
for( Student student : students){
student.print();
}
}
}
Student
package entity;
public class Student {
private int id;
private String name;
private int age;
// TODO: 디폴트생성자를 만드세요.
public Student() {
}
// TODO: 다음 생성자를 구현하세요.
// 힌트: id, name, age를 매개변수로 받아 초기화합니다.
public Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
// TODO: getter와 setter 메소드를 구현하세요.
// 힌트: 각 필드에 대해 getter와 setter를 만듭니다.
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// TODO: print 함수를 만드세요. 학생 정보를 문자열로 출력
// 힌트: "ID: [id], 이름: [name], 나이: [age]" 형식 출력
public void print(){
System.out.println("ID :" + id +" " + "이름 :" + name + " "+ "나이 :" + age );
}
}