배열과 리스트
배열은 그 크기를 변경하기 어렵기 때문에 리스트를 많이 사용한다.
package Test;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
//1.선언
//배열
Member[] mlist1= new Member[10];
//리스트
ArrayList<Member> mlist2= new ArrayList<>();
//2.입력
Member m1= new Member("kim",23);
Member m2= new Member("lee",23);
//배열
for(int i=0; i<mlist1.length;i++) {
if(mlist1[i]==null) {
mlist1[i]= m1;
break;
}
}
//리스트
mlist2.add(m1);
mlist2.add(m2);
//3.값 가져오기
//배열
for(int i=0; i<mlist1.length;i++) {
if(mlist1[i]!=null) {
mlist1[i].prt();
}
}
//리스트
for(int i=0; i<mlist2.size();i++) {
mlist2.get(i).prt();
}
System.out.println("--------------");
//실습문제
//1. lee이름을 park으로 변경하는 코드를 한줄로 작성
mlist2.get(1).name="park";
// for(int i=0; i<mlist2.size();i++) {
// if(mlist2.get(i).name=="lee") {
// mlist2.get(i).name="park";
// }
// }
//2. 리스트의 모든값을 출력
for(int i=0; i<mlist2.size();i++) {
mlist2.get(i).prt();
}
System.out.println("--------------");
//3. 이름이 choi,나이가 33인 객체를 새로만들고 추가
Member m3= new Member("choi",33);
mlist2.add(m3);
//4. 리스트의 모든값을 출력
for(int i=0; i<mlist2.size();i++) {
mlist2.get(i).prt();
}
System.out.println("--------------");
//5. 리스트의 0번 인덱스를 삭제
mlist2.remove(0);
//6. 리스트의 모든 값 출력
for(int i=0; i<mlist2.size();i++) {
mlist2.get(i).prt();
}
System.out.println("--------------");
//7. 리스트의 모든값중 이름만 출력
for(int i=0; i<mlist2.size();i++) {
System.out.println(i+"번 인덱스: "+mlist2.get(i).name);
}
}
}
시험 정리
오후 실습
어제만든 마켓 관리 프로그램에서 배열을 리스트로 변경
메인 클래스
package Market;
public class MainMarket {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("물건관리 프로그램 시작");
new GoodsManeger();
System.out.println("물건관리 프로그램 종료");
}
}
마켓 관리 클래스
package Market;
import java.util.ArrayList;
import java.util.Scanner;
public class GoodsManeger {
ArrayList<Goods> gList = new ArrayList<>();
Scanner in = new Scanner(System.in);
GoodsManeger() {
for (;;) {
menu();
String selMenu = in.nextLine();
if (selMenu.equals("1")) {
addGoods();
} else if (selMenu.equals("3")) {
listGoods();
} else if (selMenu.equals("2")) {
modGoods();
} else if (selMenu.equals("4")) {
delGoods();
} else if (selMenu.equals("5")) {
searchGoods();
} else if (selMenu.equals("6")) {
break;
} else {
System.out.println("잘못된 입력입니다.");
}
}
}
private void searchGoods() {
System.out.println("검색할 이름을 입력하세요");
String b = in.nextLine();
boolean flag = false;
for (int i = 0; i < gList.size(); i++) {
if (gList.get(i).name.equals(b)) {
System.out.println(b + "와 같은 이름");
gList.get(i).prt();
flag = true;
System.out.println("--------------");
} else if (gList.get(i).name.indexOf(b) != -1) {
System.out.println(b + "를 포함하는 이름");
gList.get(i).prt();
flag = true;
System.out.println("--------------");
}
}
if (flag == false) {
System.out.println("이름이 없습니다.");
}
}
private void delGoods() {
// TODO Auto-generated method stub
System.out.println("삭제할 이름을 입력하세요");
String b = in.nextLine();
boolean flag = true;
for (int i = 0; i < gList.size(); i++) {
if (gList.get(i).name.equals(b)) {
gList.remove(i);
System.out.println(b + "삭제 완료");
flag = false;
}
}
if (flag) {
System.out.println("이름이 없습니다.");
}
}
private void modGoods() {
// TODO Auto-generated method stub
System.out.println("수정할 이름을 입력하세요");
String b = in.nextLine();
boolean flag = true;
for (int i = 0; i < gList.size(); i++) {
if (gList.get(i).name.equals(b)) {
System.out.println("수량을 입력하세요");
int newInt = in.nextInt();
in.nextLine();
gList.get(i).cnt = newInt;
System.out.println("가격을 입력하세요");
newInt = in.nextInt();
in.nextLine();
gList.get(i).price = newInt;
flag = false;
}
}
if (flag) {
System.out.println("이름이 없습니다.");
}
}
private void addGoods() {
Goods newGoods = new Goods();
System.out.println("이름 입력");
String name = in.nextLine();
System.out.println("아이디 입력");
String id = in.nextLine();
System.out.println("수량 입력");
int cnt = in.nextInt();
in.nextLine();
System.out.println("단가 입력");
int price = in.nextInt();
in.nextLine();
newGoods.setting(name, id, cnt, price);
gList.add(newGoods);
}
private void listGoods() {
for (int i = 0; i < gList.size(); i++) {
System.out.println(i + "번 정보-------");
gList.get(i).prt();
System.out.println("------------");
}
}
private void menu() {
// TODO Auto-generated method stub
System.out.println("1. 물건등록");
System.out.println("2. 물건수정");
System.out.println("3. 전체보기");
System.out.println("4. 물건삭제");
System.out.println("5. 물건검색");
System.out.println("6. 프로그램 종료");
}
}
물건정보 클래스
package Market;
public class Goods {
String name = null;
String id = null;
int cnt = 0;
int price = 0;
public void setting(String name, String id, int cnt, int price) {
this.name = name;
this.id = id;
this.cnt = cnt;
this.price = price;
}
public void prt() {
System.out.println("이름: " + this.name);
System.out.println("아이디: " + this.id);
System.out.println("수량: " + this.cnt);
System.out.println("가격: " + this.price);
}
}