JAVA_ ArrayList

장성욱·2025년 6월 10일

JAVA

목록 보기
11/23

ArrayList

  • ArrayList<객체> list = new ArrayList<>(); // 문법

  • java에서 자주 쓰이는 자료구조로 좀 똑똑한 배열느낌

  • 맨 위에 import java.util.ArrayList; 작성해야 사용가능
    ㄴ 없으면 실행 시 오류 발생

++ import java.util.*; 을 사용하면 Scanner, HashMap등
util내 모든 기능으 가져와 사용가능 but 권장 x

  • 관련 용어

.add( ) : 추가
.remove(index) : 삭제
.get(index) : 값 가져오기
.size() : 크기 출력
.set(index, 새로운_문자열) : 문자열 내용 수정

활용 문제 )

import java.util.ArrayList;

class Main {
  public static void main(String [] args){
    동물 [] a = new 동물[4];	// 동물객체가 들어간 a라는 배열 생성
    a[0] = new 강아지("흰둥이");	// 배열에 객체 추가
    a[1] = new 고양이("냐옹이");
    a[2] = new("한우");
    a[3] = new 오리("훈제");

    동물원 zoo = new 동물원();	// 동물원이라는 새로운 객체 생성
    zoo.추가(new 강아지("뽀삐"));
    zoo.추가(new 고양이("냥이"));

    zoo.전원짓기();


  }
}
class 동물원 {
  ArrayList<동물> b = new ArrayList<>();
  // ArrayList 문법
  // 동물(객체)를 담을 수 있는 ArrayList라는 상자를 만들고,
  // 이걸 b라는 변수로 부른다.
  // 객체를 담기에 없는 객체를 추가하려면 따로 생성해 줘야 함

  void 추가(동물 d) {	// d는 동물 하나를 가리키는 변수
    b.add(d);	// .add()는 리스트에 값을 추가하는 메서드
  }
  void 전원짓기() {		   // 리스트에 추가된 동물만 실행됨
    for (동물 d: b) { 	// ArrayList에 추가된 동물 d를 하나씩 꺼내서 반복
      d.짓다();
    }
  }
}
class 동물 {
  String name;
  동물(String name) {
    this.name = name;
  }
  void 짓다() {
  }
  void 먹다() {
    System.out.println(name + "이(가) 밥을 먹음");
  }
}

class 강아지 extends 동물{
  강아지(String name) {
    super(name);
  }
  @Override
  void 짓다() {
    System.out.println(name + "이(가) 멍멍 짓음");
  }
  void 먹다() {
    System.out.println(name + "이(가) 사료를 먹음");
  }
}

class 고양이 extends 동물 {
  고양이(String name) {
    super(name);
  }
  @Override
  void 짓다() {
    System.out.println(name + "이(가) 야옹 거림");
  }
}

classextends 동물 {(String name) {
    super(name);
  }
  @Override
  void 짓다() {
    System.out.println(name + "이(가) 음메 거림");
  }
}

class 오리 extends 동물 {
  오리(String name) {
    super(name);
  }
  @Override
  void 짓다() {
    System.out.println(name + "이(가) 꽥꽥 거림");
  }
}

좋아하는 과일 리스트 만들기

import java.util.ArrayList;

class Main{
  public static void main (String[] args) {
    fruits[] a = new fruits[4];
    a[0] = new apple("apple");
    a[1] = new banana("banana");
    a[2] = new grape("grape");

    like_fruits lf = new like_fruits();
    lf.추가(new apple("사과"));
    lf.추가(new banana("바나나"));
    lf.추가(new grape("포도"));

    System.out.println("내가 좋아하는 과일들:");
    lf.출력();

  }
}
class like_fruits {
  ArrayList<fruits> b = new ArrayList<>();
  void 추가(fruits f) {
    b.add(f);
  }
  void 출력() {
    for(fruits f:b) {
      System.out.println(f.name);

    }
  }

}
class fruits {
  String name;
  fruits(String name) {
    this.name=name;
  }
}
class apple extends fruits{
  apple(String name) {
    super(name);
  }
}
class banana extends fruits {
  banana(String name) {
    super(name);
  }
}
class grape extends fruits{
  grape(String name) {
    super(name);
  }
}

숫자리스트에서 짝수만 출력하기

import java.util.ArrayList;

class Main {
  public static void main(String [] args) {
    ArrayList<Integer> num = new ArrayList<>();
    
    // int의 경우 Integer을 사용하고 별도의 class 생성은 필요없다.

    for (int i = 1; i <= 10; i ++) {
      num.add(i);
    }

    System.out.println("짝수만 출력 : ");
    for (int n: num) {
      if (n % 2 == 0) {
        System.out.println(n);
        
        // num은 정수 n으로 정의한 뒤 num을 하나씩 조건식에 돌려
        // 결과가 참인 값들(짝수)만 출력한다.
        
      }
    }
  }
}
  • auto-boxixng : 자바에서 기본형 int를 Integer 객체로 자동으로 바꿔주는 기능

이름 입력받아 리스트에 추가하기


import java.util.ArrayList;
import java.util.Scanner;

class Main{
  public static void main (String[] args) {
    ArrayList<String> a = new ArrayList<>(); // ArrayList<String>생성
    Scanner sc = new Scanner(System.in);	// Scanner 생성

    for (int i = 1; i <=3; i ++) {
      System.out.println("이름을 입력하세요 : ");
      String name  = sc.nextLine();
      a.add(name);
    }
    // 이름을 3번 입력받아 입력받은 문자를 a리스트에 추가

    System.out.println("입력된 이름들 : ");
    for (String name : a) {
      System.out.println(name);
    }
    // a에 있는 이름들을 한 번씩 꺼내 출력

    sc.close();
    // 메모리 누수나 자원 낭비 방지를 위해 습관화하기
  }
}

int와 마찬가지로 string도 별도의 클래스 없이 작성 가능

나이와 이름 입력받아 리스트에 추가


import java.util.ArrayList;
import java.util.Scanner;

class Main {
  public static void main (String[] args) {
    ArrayList<person> a = new ArrayList<>();
    Scanner sc = new Scanner(System.in);

    for (int i = 1; i <= 3 ; i ++) {
      System.out.println("이름을 입력하세요 :");
      String name = sc.nextLine();
      System.out.println("나이를 입력하세요 :");
      int age = sc.nextInt();
      sc.nextLine();

      person p = new person();
      p.name = name;
      p.age = age;

      a.add(p);
    }

    System.out.println("입력된 정보 :");
    for (person p : a) {
      p.print();
    }
    
    sc.close();
  }
}

class person {
  int age;
  String name;
  void print() {
    System.out.println(name + "(" + age + ")");
  }
}
profile
https://frost-puck-b0f.notion.site/B-2610fdaef71d80c49d1bccdcb575dcb5

0개의 댓글