* ArrayList - 불안전한 대신에 퍼포먼스가 빠르다.(안전한 상황을 만들 수 있다.)
* Vector - 안전한 대신에 퍼포먼스가 느리다.
* Set - 순서허용X 추가 : add(추가할 객체)
중복허용X 삭제 : remove(삭제할 객체) : Object
* List- 순서허용 크기 : size()
중복허용 조회 : set : X
List : get(index)
* Map - HashMap
- HashTable <- Properties(어떤 설정을 저장할 때 사용)
* ProductManagerArrayList
Package : product.dto ->DTO 클래스
product.service -> ProductManagerService
product.test -> ProductTest
class :
1. DTO(tel, dvd)
2. ProductManagerService - Attribute,Product(),생성자, printProductList()
ex :
//TestProductManager.java
package product.test;
import java.util.ArrayList;
import java.util.List;
import product.dto.DVDPlayer;
import product.dto.ProductDTO;
import product.dto.Television;
import product.service.ProductManagerService;
public class TestProductManager{
public static void main(String[] args){
Television tv1 = new Television("tv-111", "LG-3D TV", 2000000, "LG", "최신형 티비", true, true, true);
Television tv2 = new Television("tv-222", "파브-TV", 1000000, "삼성", "LCD 티비", false, false, true);
// Television tv2 = new Television("tv-111", "파브-TV", 1000000, "삼성", "LCD 티비", false, false, true);
DVDPlayer dvd1 = new DVDPlayer("dvd-111", "Bluelay-one", 120000, "삼성", "최신형 블루레이 플레이어", "C", true);
DVDPlayer dvd2 = new DVDPlayer("dvd-222", "dvd-one", 50000, "LG", "DVD-RW 플레이어", "C", false);
//관리자인 ProductManagerService객체 생성
ProductManagerService pm = new ProductManagerService();
pm.addProduct(tv1);
pm.addProduct(tv2);
pm.addProduct(dvd1);
pm.addProduct(dvd2);
System.out.println("-------------상품 추가후---------------");
pm.printProductList();//productList에 저장된 모든 ProductDTO 정보를 프린트
System.out.println("-----------id로 제품정보 조회------------");
ProductDTO p1 = pm.searchProductById("tv-111");
System.out.println("tv-111 제품 정보 : "+p1);
ProductDTO p2 = pm.searchProductById("tv-222");
System.out.println("tv-222 제품 정보 : "+p2);
ProductDTO p3 = pm.searchProductById("dvd-111");
System.out.println("dvd-111 제품 정보 : "+p3);
//없는 ID로 조회
ProductDTO p4 = pm.searchProductById("dvd-222");
System.out.println("dvd-222 제품 정보 : "+p4);
System.out.println("-----------정보수정--------------");
dvd2 = new DVDPlayer("dvd-222", "dvd-one", 70000, "LG", "DVD-RW 플레이어", "Code free", true);
pm.modifyProductInfo(dvd2);
pm.printProductList();
System.out.println("--------삭제----------");
pm.removeProductById("tv-111");
pm.printProductList();
System.out.println("--------Maker조회----------");
ArrayList list = pm.searchProductsByMaker("삼성");
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
System.out.println("--------remove조회----------");
for(Object o : list){
ProductDTO p = (ProductDTO)o;
pm.removeProductById(p.getProductId());
}
pm.printProductList();
}
}
-------------------------
package product.service;
import java.util.ArrayList;
import product.dto.ProductDTO;
public class ProductManagerService {
private ArrayList productList;
// private ArrayList productList = new ArrayList();
// 생성자
public ProductManagerService() {
productList = new ArrayList();
}
private boolean isNull(Object obj) {
// boolean flag = false;
// if(obj ==null){
// flag =true;
// }
// return flag;
return obj == null;
}
// productList에 저장된 모든 제품 정보 출력
public void printProductList() {
// for(int i=0;i<productList.size();i++){
// System.out.println(productList.get(i));
// }
for (Object obj : productList) {
System.out.println(obj);
}
}
// 추가
public void addProduct(ProductDTO pdto) {
if (isNull(pdto)) {
System.out.println("Null 데이터는 추가할 수 없습니다.");
return;
}
ProductDTO pt = searchProductById(pdto.getProductId());
if (!isNull(pt)) {
System.out.println("이미 등록된 제품 ID입니다. ID를 바꿔주세요.");
return;
}
/*
* //같은 ID가 있는지 비교. for(int i=0;i<productList.size();i++){ // ProductDTO
* pto = (ProductDTO)productList.get(i); //
* if(pdto.getProductId().equals(pto.getProductId())){ // // }
* if(((ProductDTO)
* productList.get(i)).getProductId().equals(pdto.getProductId())){
* System.out.println("이미 등록된 제품 ID입니다. ID를 바꿔주세요."); return; } }
*/
productList.add(pdto);
}
// id로 제품을 조회해서 return
public ProductDTO searchProductById(String productId) {
ProductDTO pDTO = null;
if (isNull(productId)) {
System.out.println("인자로 null값이 들어 왔습니다.");
return pDTO;
}
for (int i = 0; i < productList.size(); i++) {
if ((((ProductDTO) productList.get(i)).getProductId())
.equals(productId)) {
pDTO = ((ProductDTO) productList.get(i));
break;
}
}
return pDTO;
}
public void modifyProductInfo(ProductDTO pdto) {
if (isNull(pdto)) {
System.out.println("인자로 null값이 들어 왔습니다.");
return;
}
for (int i = 0; i < productList.size(); i++) {
if ((((ProductDTO) productList.get(i)).getProductId()).equals(pdto
.getProductId())) {
productList.set(i, pdto);
break;
}
}
}
public void removeProductById(String productId) {
if (isNull(productId)) {
System.out.println("인자로 null값이 들어 왔습니다.");
return;
}
/* for (int i = 0; i < productList.size(); i++) {
if ((((ProductDTO) productList.get(i)).getProductId())
.equals(productId)) {
//productList.remove(i);
// productList.remove(productId);//객체를 전부 지워야하는데 이름만 넘겨서 이름만 지우는 역할을 한다.
}
}*/
ProductDTO pto = searchProductById(productId);
productList.remove(pto);
}
public ArrayList searchProductsByMaker(String productsMaker){
ArrayList productMakers = new ArrayList();
for(int i=0;i<productList.size();i++){
if((((ProductDTO) productList.get(i)).getProductMaker()).equals(productsMaker)){
productMakers.add(productList.get(i));
}
}
return productMakers;
}
}
--------------------
package product.dto;
public class ProductDTO {
private String productId;
private String productName;
private int productPrice;
private String productMaker;
private String productInfo;
public ProductDTO(String productId, String productName, int productPrice,
String productMaker, String productInfo) {
this.productId = productId;
this.productName = productName;
this.productPrice = productPrice;
this.productMaker = productMaker;
this.productInfo = productInfo;
}
public ProductDTO() {
}
public String getProductId() {
return productId;
}
public void setProductId(String productId) {
this.productId = productId;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public int getProductPrice() {
return productPrice;
}
public void setProductPrice(int productPrice) {
this.productPrice = productPrice;
}
public String getProductMaker() {
return productMaker;
}
public void setProductMaker(String productMaker) {
this.productMaker = productMaker;
}
public String getProductInfo() {
return productInfo;
}
public void setProductInfo(String productInfo) {
this.productInfo = productInfo;
}
@Override
public String toString() {
return "ProductDTO [productId=" + productId + ", productName="
+ productName + ", productPrice=" + productPrice
+ ", productMaker=" + productMaker + ", productInfo="
+ productInfo + "]";
}
}
-----------------
package product.dto;
public class Television extends ProductDTO{
private boolean threeD;
private boolean smartTV;
private boolean usb;
public Television(String productId, String productName, int productPrice,
String productMaker, String productInfo, boolean threeD,
boolean smartTV, boolean usb) {
super(productId, productName, productPrice, productMaker, productInfo);
this.threeD = threeD;
this.smartTV = smartTV;
this.usb = usb;
}
public Television(String productId, String productName, int productPrice,
String productMaker, String productInfo) {
super(productId, productName, productPrice, productMaker, productInfo);
}
public boolean isThreeD() {
return threeD;
}
public void setThreeD(boolean threeD) {
this.threeD = threeD;
}
public boolean isSmartTV() {
return smartTV;
}
public void setSmartTV(boolean smartTV) {
this.smartTV = smartTV;
}
public boolean isUsb() {
return usb;
}
public void setUsb(boolean usb) {
this.usb = usb;
}
@Override
public String toString() {
return "Television [threeD=" + (threeD ? "3DTV" : "2GTV") + ", smartTV=" + (smartTV ? "스마트TV" : "일반TV")
+ ", usb=" + (usb ? "Usb사용가능" : "usb사용불가능") + ", 일반제품정보=" + super.toString() + "]";
}
}
---------------------
package product.dto;
public class DVDPlayer extends ProductDTO{
private String areaCode;
private boolean bluelay;
public DVDPlayer(String productId, String productName, int productPrice,
String productMaker, String productInfo, String areaCode,
boolean bluelay) {
super(productId, productName, productPrice, productMaker, productInfo);
this.areaCode = areaCode;
this.bluelay = bluelay;
}
public DVDPlayer(String productId, String productName, int productPrice,
String productMaker, String productInfo) {
super(productId, productName, productPrice, productMaker, productInfo);
}
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
public boolean isBluelay() {
return bluelay;
}
public void setBluelay(boolean bluelay) {
this.bluelay = bluelay;
}
@Override
public String toString() {
return "DVDPlayer [areaCode=" + areaCode + ", bluelay=" + (bluelay? "사용가능" : "사용불가능")
+ ", 일반제품정보=" + super.toString() + "]";
}
}
'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글
collection값 빼오기 (0) | 2012.07.28 |
---|---|
map실습 (0) | 2012.07.28 |
5개의 로또번호 출력하기 - collection실습 (0) | 2012.07.28 |
컬렉션(collection) (0) | 2012.07.28 |
인터페이스(interface) (0) | 2012.07.28 |