From 79999f8aa85621b74109ae4add97062f49f1de9a Mon Sep 17 00:00:00 2001 From: youngjun Date: Mon, 17 Apr 2023 21:18:38 +0900 Subject: [PATCH 1/2] Java Assignment3 upload by SonYoungJun --- .../day05/practice/Practice01/AuthMethod.java | 5 + src/me/day05/practice/Practice01/Company.java | 5 + .../day05/practice/Practice01/Electronic.java | 96 ++++++++++++++ src/me/day05/practice/Practice01/User.java | 118 ++++++++++++++++++ src/me/day05/practice/Practice02/Users.java | 68 ++++++++++ .../practice/Practice03/Electronics.java | 55 ++++++++ 6 files changed, 347 insertions(+) create mode 100644 src/me/day05/practice/Practice01/AuthMethod.java create mode 100644 src/me/day05/practice/Practice01/Company.java create mode 100644 src/me/day05/practice/Practice01/Electronic.java create mode 100644 src/me/day05/practice/Practice01/User.java create mode 100644 src/me/day05/practice/Practice02/Users.java create mode 100644 src/me/day05/practice/Practice03/Electronics.java diff --git a/src/me/day05/practice/Practice01/AuthMethod.java b/src/me/day05/practice/Practice01/AuthMethod.java new file mode 100644 index 0000000..cf87715 --- /dev/null +++ b/src/me/day05/practice/Practice01/AuthMethod.java @@ -0,0 +1,5 @@ +package me.day05.practice.Practice01; + +public enum AuthMethod { + FINGERPRINT, PATTERN, PIN, FACE +} diff --git a/src/me/day05/practice/Practice01/Company.java b/src/me/day05/practice/Practice01/Company.java new file mode 100644 index 0000000..9c83406 --- /dev/null +++ b/src/me/day05/practice/Practice01/Company.java @@ -0,0 +1,5 @@ +package me.day05.practice.Practice01; + +public enum Company { + SAMSUMG, LG, APPLE +} diff --git a/src/me/day05/practice/Practice01/Electronic.java b/src/me/day05/practice/Practice01/Electronic.java new file mode 100644 index 0000000..7bfa176 --- /dev/null +++ b/src/me/day05/practice/Practice01/Electronic.java @@ -0,0 +1,96 @@ +package me.day05.practice.Practice01; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Objects; + +public class Electronic { + private static int sequence = 0; + private static final int DEFAULT_CAPACITY = 10; + private String productNo; + private String modelName; + private Company companyName; + private String dateOfMade; + private AuthMethod[] authMethod; + + Electronic() { + productNo = Integer.toString(++sequence); + LocalDateTime localDateTime = LocalDateTime.now(); + dateOfMade = localDateTime.format(DateTimeFormatter.ofPattern("yy-MM-dd HH:mm")); + authMethod = new AuthMethod[DEFAULT_CAPACITY]; + } + + public Electronic(String modelName, Company companyName, AuthMethod[] authMethod) { + this(); + this.modelName = modelName; + this.companyName = companyName; + this.authMethod = authMethod; + } + + public String getProductNo() { + return productNo; + } + + public void setProductNo(String productNo) { + this.productNo = productNo; + } + + public String getModelName() { + return modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public Company getCompanyName() { + return companyName; + } + + public void setCompanyName(Company companyName) { + this.companyName = companyName; + } + + public String getDateOfMade() { + return dateOfMade; + } + + public void setDateOfMade(String dateOfMade) { + this.dateOfMade = dateOfMade; + } + + public AuthMethod[] getAuthMethod() { + return authMethod; + } + + public void setAuthMethod(AuthMethod[] authMethod) { + this.authMethod = authMethod; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Electronic that = (Electronic) o; + return Objects.equals(productNo, that.productNo) && Objects.equals(modelName, that.modelName) && companyName == that.companyName && Objects.equals(dateOfMade, that.dateOfMade) && Arrays.equals(authMethod, that.authMethod); + } + + @Override + public int hashCode() { + int result = Objects.hash(productNo, modelName, companyName, dateOfMade); + result = 31 * result + Arrays.hashCode(authMethod); + return result; + } + + @Override + public String toString() { + return "Electronic{" + + "productNo='" + productNo + '\'' + + ", modelName='" + modelName + '\'' + + ", companyName=" + companyName + + ", dateOfMade='" + dateOfMade + '\'' + + ", authMethod=" + Arrays.toString(authMethod) + + '}'; + } +} diff --git a/src/me/day05/practice/Practice01/User.java b/src/me/day05/practice/Practice01/User.java new file mode 100644 index 0000000..5faa9e7 --- /dev/null +++ b/src/me/day05/practice/Practice01/User.java @@ -0,0 +1,118 @@ +package me.day05.practice.Practice01; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Objects; + +public class User { + private static int sequence = 0; + private static final int DEFAULT_CAPACITY = 10; + private String userId; + private String userPassword; + private String userPhoneNumber; + private String userEmail; + private String userBirthDate; + private Electronic[] electronicDevices; + private String registerTime; + + public User() { + LocalDateTime localDateTime = LocalDateTime.now(); + registerTime = localDateTime.format(DateTimeFormatter.ofPattern("yy-MM-dd HH:mm")); + electronicDevices = new Electronic[DEFAULT_CAPACITY]; + } + + public User(String userId, String userPassword, String userPhoneNumber, String userEmail, String userBirthDate, Electronic[] electronicDevices) { + this(); + this.userId = userId; + this.userPassword = userPassword; + this.userPhoneNumber = userPhoneNumber; + this.userEmail = userEmail; + this.userBirthDate = userBirthDate; + this.electronicDevices = electronicDevices; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserPassword() { + return userPassword; + } + + public void setUserPassword(String userPassword) { + this.userPassword = userPassword; + } + + public String getUserPhoneNumber() { + return userPhoneNumber; + } + + public void setUserPhoneNumber(String userPhoneNumber) { + this.userPhoneNumber = userPhoneNumber; + } + + public String getUserEmail() { + return userEmail; + } + + public void setUserEmail(String userEmail) { + this.userEmail = userEmail; + } + + public String getUserBirthDate() { + return userBirthDate; + } + + public void setUserBirthDate(String userBirthDate) { + this.userBirthDate = userBirthDate; + } + + public Electronic[] getElectronicDevices() { + return electronicDevices; + } + + public void setElectronicDevices(Electronic[] electronicDevices) { + this.electronicDevices = electronicDevices; + } + + public String getRegisterTime() { + return registerTime; + } + + public void setRegisterTime(String registerTime) { + this.registerTime = registerTime; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + User user = (User) o; + return Objects.equals(userId, user.userId) && Objects.equals(userPassword, user.userPassword) && Objects.equals(userPhoneNumber, user.userPhoneNumber) && Objects.equals(userEmail, user.userEmail) && Objects.equals(userBirthDate, user.userBirthDate) && Arrays.equals(electronicDevices, user.electronicDevices) && Objects.equals(registerTime, user.registerTime); + } + + @Override + public int hashCode() { + int result = Objects.hash(userId, userPassword, userPhoneNumber, userEmail, userBirthDate, registerTime); + result = 31 * result + Arrays.hashCode(electronicDevices); + return result; + } + + @Override + public String toString() { + return "User{" + + "userId='" + userId + '\'' + + ", userPassword='" + userPassword + '\'' + + ", userPhoneNumber='" + userPhoneNumber + '\'' + + ", userEmail='" + userEmail + '\'' + + ", userBirthDate='" + userBirthDate + '\'' + + ", electronicDevices=" + Arrays.toString(electronicDevices) + + ", registerTime='" + registerTime + '\'' + + '}'; + } +} diff --git a/src/me/day05/practice/Practice02/Users.java b/src/me/day05/practice/Practice02/Users.java new file mode 100644 index 0000000..ed459b0 --- /dev/null +++ b/src/me/day05/practice/Practice02/Users.java @@ -0,0 +1,68 @@ +package me.day05.practice.Practice02; + +import me.day05.practice.Practice01.User; + +import java.util.Arrays; + +public class Users { + private User[] userList; + private static Users instance = null; + + private Users(){ + }; + + public static Users getInstance() { + if(instance == null) { + instance = new Users(); + } + return instance; + } + + public User findByUserId(String userId) { + for(User user : userList) { + if(userId.equals(user.getUserId())) { + return user; + } + } + return null; + } + + public User copy(User user) { + User copyUser = new User(); + copyUser.setUserId(user.getUserId()); + copyUser.setUserPassword(user.getUserPassword()); + copyUser.setUserPhoneNumber(user.getUserPhoneNumber()); + copyUser.setUserEmail(user.getUserEmail()); + copyUser.setUserBirthDate(user.getUserBirthDate()); + copyUser.setElectronicDevices(Arrays.copyOf(user.getElectronicDevices(), user.getElectronicDevices().length)); + return copyUser; + } + + public User[] getUserList() { + return userList; + } + + public void setUserList(User[] userList) { + this.userList = userList; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Users users = (Users) o; + return Arrays.equals(userList, users.userList); + } + + @Override + public int hashCode() { + return Arrays.hashCode(userList); + } + + @Override + public String toString() { + return "Users{" + + "userList=" + Arrays.toString(userList) + + '}'; + } +} diff --git a/src/me/day05/practice/Practice03/Electronics.java b/src/me/day05/practice/Practice03/Electronics.java new file mode 100644 index 0000000..9aaeef2 --- /dev/null +++ b/src/me/day05/practice/Practice03/Electronics.java @@ -0,0 +1,55 @@ +package me.day05.practice.Practice03; + +import me.day05.practice.Practice01.AuthMethod; +import me.day05.practice.Practice01.Company; +import me.day05.practice.Practice01.Electronic; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Electronics { + private Electronic[] electronicList; + private static Electronics instance; + + private Electronics() { + } + + public static Electronics getInstance() { + if(instance == null) + instance = new Electronics(); + return instance; + } + + public Electronic[] getElectronicList() { + return electronicList; + } + + public void setElectronicList(Electronic[] electronicList) { + this.electronicList = electronicList; + } + + public Electronic findByProductNo(String productNo) { + for(Electronic electronic : electronicList) { + if(productNo.equals(electronic.getProductNo())) + return electronic; + } + return null; + } + + public Electronic[] groupByCompanyName(Company company) { + List electronics = Arrays.stream(electronicList).filter(list -> list.getCompanyName().equals(company)).toList(); + return electronics.toArray(new Electronic[electronics.size()]); + } + + public Electronic[] groupByAuthMethod(AuthMethod authMethod) { + List arr = new ArrayList<>(); + for(Electronic electronic : electronicList) { + for(AuthMethod auth : electronic.getAuthMethod()) { + if(auth == authMethod) + arr.add(electronic); + } + } + return arr.toArray(new Electronic[arr.size()]); + } +} From 7d5fcc57a9d0c96e99bf936115cf9b3001a6104f Mon Sep 17 00:00:00 2001 From: youngjun Date: Mon, 17 Apr 2023 21:38:04 +0900 Subject: [PATCH 2/2] Java Assignment3 upload by SonYoungJun --- src/me/day05/practice/Practice03/Electronics.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/me/day05/practice/Practice03/Electronics.java b/src/me/day05/practice/Practice03/Electronics.java index 9aaeef2..bc6789c 100644 --- a/src/me/day05/practice/Practice03/Electronics.java +++ b/src/me/day05/practice/Practice03/Electronics.java @@ -38,8 +38,8 @@ public Electronic findByProductNo(String productNo) { } public Electronic[] groupByCompanyName(Company company) { - List electronics = Arrays.stream(electronicList).filter(list -> list.getCompanyName().equals(company)).toList(); - return electronics.toArray(new Electronic[electronics.size()]); + Electronic[] electronics = Arrays.stream(electronicList).filter(list -> list.getCompanyName().equals(company)).toArray(Electronic[]::new); + return electronics; } public Electronic[] groupByAuthMethod(AuthMethod authMethod) {