![article thumbnail image](https://blog.kakaocdn.net/dn/BwBZL/btrMU6lApkj/3quWdekhMUmRbvC6gW5kQ1/img.png)
// 가변적인 배열과 같은 형태를 가지고 있는 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;
}
}
}
}
'Study > JAVA' 카테고리의 다른 글
JAVA기초 15일차 <JDBC> JavaDatabaseConnectivityAPI (0) | 2022.09.27 |
---|---|
JAVA기초 14일차 <MVC패턴, 상속, 추상화> (1) | 2022.09.26 |
JAVA기초 12일차 <객체지향2> (0) | 2022.09.24 |
JAVA기초 11일차 <객체지향> (1) | 2022.09.24 |
JAVA기초 10일차 <메서드> (0) | 2022.09.24 |