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 + "이(가) 야옹 거림");
}
}
class 소 extends 동물 {
소(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을 하나씩 조건식에 돌려
// 결과가 참인 값들(짝수)만 출력한다.
}
}
}
}
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 + ")");
}
}