Search

메서드클래스배열5_문제06_카트DAO

대분류
STEP08 메서드
소분류
메서드클래스배열5_문제

영상

개념

package 메서드클래스배열5_문제; class User { int userNumber; String userName; } class UserDAO { User[] userList = null; void setData(String userData) { String[] temp = userData.split(","); userList = new User[temp.length]; for(int i=0; i<temp.length; i++) { User user = new User(); String[] info = temp[i].split("/"); user.userNumber = Integer.parseInt(info[0]); user.userName = info[1]; userList[i] = user; } } } class Item { int itemNumber; String itemName; } class ItemDAO { Item[] itemList = null; void setData(String itemData) { String[] temp = itemData.split(","); itemList = new Item[temp.length]; for(int i=0; i<itemList.length; i++) { Item item = new Item(); String[] info = temp[i].split("/"); item.itemNumber = Integer.parseInt(info[0]); item.itemName = info[1]; itemList[i] = item; } } } class Cart { int userNumber; int itemNumber;; } class CartDAO { Cart[] cartList = null; void setData(String cartData) { String[] temp = cartData.split("\n"); cartList = new Cart[temp.length]; for(int i=0; i<cartList.length; i++) { Cart cart = new Cart(); String[] info = temp[i].split("/"); cart.userNumber = Integer.parseInt(info[0]); cart.itemNumber = Integer.parseInt(info[1]); cartList[i] = cart; } } } public class 메서드클래스배열5_문제06_카트DAO { public static void main(String[] args) { String userData = "3001/이만수,3002/김철민,3003/이영희"; String itemData = "1001/고래밥,1002/새우깡,1003/칸쵸"; String cartData = ""; cartData += "3001/1001\n"; cartData += "3001/1001\n"; cartData += "3003/1002\n"; cartData += "3001/1001\n"; cartData += "3001/1003\n"; cartData += "3003/1002\n"; cartData += "3003/1001\n"; cartData += "3002/1001"; UserDAO userDAO = new UserDAO(); userDAO.setData(userData); ItemDAO itemDAO = new ItemDAO(); itemDAO.setData(itemData); CartDAO cartDAO = new CartDAO(); cartDAO.setData(cartData); /* [문제1] 회원별 아이템 구매목록을 출력하시오. [정답1] 이만수 ==> 고래밥3 칸쵸1 김철민 ==> 고래밥1 이영희 ==> 고래밥1 새우깡2 */ User[] userList = userDAO.userList; Cart[] cartList = cartDAO.cartList; Item[] itemList = itemDAO.itemList; for(int i=0; i<userList.length; i++) { System.out.print(userList[i].userName + " ==> "); for(int j=0; j<itemList.length; j++) { int count = 0; for(int k=0; k<cartList.length; k++) { if(userList[i].userNumber == cartList[k].userNumber && itemList[j].itemNumber == cartList[k].itemNumber) { count += 1; } } if(count > 0) { System.out.print(itemList[j].itemName + count + " "); } } System.out.println(); } System.out.println(); /* [문제2] 아이템별로 구입한 회원이름을 출력하시오. [정답2] 고래밥 ==> 이만수 김철민 이영희 새우깡 ==> 이영희 칸쵸 ==> 이만수 */ for(int i=0; i<itemList.length; i++) { System.out.print(itemList[i].itemName + " ==> "); for(int j=0; j<userList.length; j++) { int index = -1; for(int k=0; k<cartList.length; k++) { if(itemList[i].itemNumber == cartList[k].itemNumber && userList[j].userNumber == cartList[k].userNumber) { index = j; break; } } if(index != -1) { System.out.print(userList[index].userName + " "); } } System.out.println(); } } }
Java
복사