article thumbnail image
Published 2022. 9. 24. 17:49
728x90

// 가변적인 배열과 같은 형태를 가지고 있는 ArrayList클래스(기능)
// 객체배열,가변배열

// 배열
// 자료형[] 배열명

// ArrayList<자료형> 

// 1. ArrayList생성하기
// ArrayList<저장할 데이터 자료형>
// 저장할 데이터 자료형 ---> 기본 데이터 타입X, 레퍼런스형 데이터 타입만 가능
// ArrayList에는 객체 형태의 데이터만 저장할 수 있다.
// int, float, double, char 올수 없다
// String, Integer, Floate 객체 형태의 데이터 타입만 올 수 있다

// 가변적인 배열과 같은 형태를 가지고 있는 ArrayList클래스(기능)
// 객체배열,가변배열

// 배열
// 자료형[] 배열명

// 1. ArrayList생성하기
// ArrayList<저장할 데이터 자료형> 변수명 = new ArrayList<>()
// 저장할 데이터 자료형 ---> 기본 데이터 타입X, 레퍼런스형 데이터 타입만 가능
// ArrayList에는 객체 형태의 데이터만 저장할 수 있다.
// int, float, double, char 올수 없다
// String, Integer, Floate 객체 형태의 데이터 타입만 올 수 있다// 가변적인 배열과 같은 형태를 가지고 있는 ArrayList클래스(기능)
// 객체배열,가변배열

// 배열
// 자료형[] 배열명

// 1. ArrayList생성하기
// ArrayList<저장할 데이터 자료형> 변수명 = new ArrayList<>()
// 저장할 데이터 자료형 ---> 기본 데이터 타입X, 레퍼런스형 데이터 타입만 가능
// ArrayList에는 객체 형태의 데이터만 저장할 수 있다.
// int, float, double, char 올수 없다
// String, Integer, Floate 객체 형태의 데이터 타입만 올 수 있다

// String 자료형을 저장하느 ArrayList
ArrayList<String> names = new ArrayList<>();
// 뒤에 있는 <>에 데이터 타입을 안적으면 object타입으로 데이터를 
// 받아오는데 저장할 때 String으로 자동 형변환되서
// names에 저장된다!

// 1. 값을 추가하기
// : 내부적으로 메서드들이 이미 설계가 되어있음
// : 가져와서 사용만 하면 된다.
// add() 메서드
names.add("김동현"); //[0]
names.add("이현승"); //[1]
names.add("배윤서"); //[2]
names.add("김수정"); //[3]
names.add("홍아현"); //[4]// 가변적인 배열과 같은 형태를 가지고 있는 ArrayList클래스(기능)
// 객체배열,가변배열

// 배열
// 자료형[] 배열명

// 1. ArrayList생성하기
// ArrayList<저장할 데이터 자료형> 변수명 = new ArrayList<>()
// 저장할 데이터 자료형 ---> 기본 데이터 타입X, 레퍼런스형 데이터 타입만 가능
// ArrayList에는 객체 형태의 데이터만 저장할 수 있다.
// int, float, double, char 올수 없다
// String, Integer, Floate 객체 형태의 데이터 타입만 올 수 있다

// String 자료형을 저장하느 ArrayList
ArrayList<String> names = new ArrayList<>();
// 뒤에 있는 <>에 데이터 타입을 안적으면 object타입으로 데이터를 
// 받아오는데 저장할 때 String으로 자동 형변환되서
// names에 저장된다!

// 1. 값을 추가하기
// : 뒤에 붙이는 것!
// : 내부적으로 메서드들이 이미 설계가 되어있음
// : 가져와서 사용만 하면 된다.
// add() 메서드
names.add("김동현"); //[0]
names.add("이현승"); //[1]
names.add("배윤서"); //[2]
names.add("김수정"); //[3]
names.add("홍아현"); //[4]

// 2. 값을 가져오기
// get() 메서드
names.get(0);
System.out.println(names.get(0));
//김동현

// 3. 값을 삭제하기
// remove() 메서드
names.remove(0);
System.out.println(names.get(0));
//이현승 -> 가변 배열이므로 하나씩 땡겨진다!

// 4. 값을 전부 삭제하기
// clear() 메서드
names.clear();

// 5. ArrayList의 크기값(0)을 통해 데이터가 전부 삭제 되었는지 확인
System.out.println(names.size());
names.add(    0,   null);
 //  (원하는 위치, 넣는거)
}

 

package ArrayList;

import java.util.ArrayList;

public class ex02ArrayList {

	public static void main(String[] args) {
		
		// 1. ArrayList 생성
		ArrayList<Integer> numbers = new ArrayList<>();
		// <> : 제네릭 기법
		// 클래스 내부에서 사용할 자료형을 외부에서 가져오는 기법
		
		// 2. 값 추가하기
		numbers.add(1);
		numbers.add(2);
		numbers.add(3);
		numbers.add(4);
		numbers.add(5);
		numbers.add(6);
		
		// 3. 값 출력하기
		for(int i=0; i<numbers.size(); i++) {
			System.out.println(numbers.get(i));
		}
	}

}

예제) MP3 만들기

package 뮤직플레이어;

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

import javazoom.jl.player.MP3Player;


public class Main {

	public static void main(String[] args) {
		
		// 외부 jar파일 넣는 방법
		// 프로젝트 마우스 우클릭 -> build Path -> configure Build Path
		// 탭 다섯개 중에서 libraries 탭 클릭
		// module Path, class path로 나눠져 있으면 calss path 선택
		// 1) Add External JARs 선택
		// 2) player.jar 찾아서 선택하기
		// Apply and Close 클릭
		
		// MP3Player 클래스 가져오기
		MP3Player mp3 = new MP3Player();
		
		// mp3 안에서 필요한 기능들 사용해보기
		// mp3.play("C:\\Users\\SMHRD\\Desktop\\music\\Maria.mp3");
		// mp3.stop();
		
		// 공통 경로 변수
		String path ="C:\\Users\\SMHRD\\Desktop\\music\\";
		
		// title,singer,path,playTime
		Music m1 = new Music("How you like that", "블랙핑크", 
				path+"How you like that.mp3", 250);
		Music m2 = new Music("MAGO","여자친구",path+"MAGO.mp3",152);
		Music m3 = new Music("Maria","화사",path+"Maria.mp3",222);
		Music m4 = new Music("깡", "rain",path+"깡.mp3",59);
		Music m5 = new Music("살짝설렜어","오마이걸",path+"살짝설렜어.mp3",190);
		
		// Music이라는 자료형(사용자정의 자료형)을 관리할 수 있는 기능
		// 음악들을 관리하는 ArrayList만들기
		ArrayList<Music> musicList = new ArrayList<>();		
		musicList.add(m1);
		musicList.add(m2);
		musicList.add(m3);
		musicList.add(m4);
		musicList.add(m5);
		
		// 노래 하나 ('깡') 재생
		// musicList에 깡이라는 노래가 어디에 저장
		// m4 ---> path
		// mp3.play(musicList.get(3).getPath());
		//        ▲뮤직리스트의 m3▲  . ▲Path▲
		
		// [1]재생 [2]정지 [3]이전곡 [4]다음곡 [5]종료 >> 숫자 입력 받기
		// 5번을 누르면 프로그램이 종료 될 수 있도록 틀을 만들어 보자
		Scanner sc = new Scanner(System.in);
		int i = 0;
		while(true) {
			System.out.print("[1]재생 [2]정지 [3]이전곡 [4]다음곡 [5]종료 >> ");
			int choice = sc.nextInt();
			
			if(choice==1) {
				System.out.println("====== 노래 재생 ======");
				mp3.play(musicList.get(i).getPath());
				mp3.play(musicList.get(i).getPath());
				System.out.println(musicList.get(i).getSinger()+" - "+musicList.get(i).getTitle()+" "
						+musicList.get(i).getPlayTime()/60+"분 "+musicList.get(i).getPlayTime()%60+"초");
			}else if(choice==2) {
				System.out.println("====== 정지 ======");
				mp3.stop();
				
			}else if(choice==3) {
				System.out.println("====== 이전 곡 ======");
				mp3.stop();
				i--;
				if(0>i) {
					i = musicList.size()-1;
				}
				mp3.play(musicList.get(i).getPath());
				mp3.play(musicList.get(i).getPath());
				System.out.println(musicList.get(i).getSinger()+" - "+musicList.get(i).getTitle()+" "
						+musicList.get(i).getPlayTime()/60+"분 "+musicList.get(i).getPlayTime()%60+"초");
				
			}else if(choice==4) {
				// 노래가 재생중이라면 노래를 멈추고
				System.out.println("====== 다음 곡 ======");
				if(mp3.isPlaying()) {
				mp3.stop();
				}
				// 다음곡을 재생
				i++;
				// i값이 musicList의 인덱스 값 범위를 넘어서면 다시 첫번째 곡으로
				// 돌아가게 만들어 주자
				// 노래가 재생될때마다 노래정보
				// 깡 - 비 : o분 o초 재생중입니다.
				if(i>musicList.size()-1) {
					i = 0;
				}
				mp3.play(musicList.get(i).getPath());
				System.out.println(musicList.get(i).getSinger()+" - "+musicList.get(i).getTitle()+" "
						+musicList.get(i).getPlayTime()/60+"분 "+musicList.get(i).getPlayTime()%60+"초");			
			}else if(choice==5) {
				System.out.println("====== mp3가 종료 되었습니다. ======");
				break;
			}
		}
	}
}

실행 결과 화면

 

728x90
복사했습니다!