diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..862d09b --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..a4a038a --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/KDTBE5_Java_Assignment3.iml b/KDTBE5_Java_Assignment3.iml new file mode 100644 index 0000000..33c42f8 --- /dev/null +++ b/KDTBE5_Java_Assignment3.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/me.day05.practice/.gitignore b/me.day05.practice/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/me.day05.practice/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/me.day05.practice/.idea/.gitignore b/me.day05.practice/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/me.day05.practice/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/me.day05.practice/.idea/misc.xml b/me.day05.practice/.idea/misc.xml new file mode 100644 index 0000000..862d09b --- /dev/null +++ b/me.day05.practice/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/me.day05.practice/.idea/modules.xml b/me.day05.practice/.idea/modules.xml new file mode 100644 index 0000000..f80ffdd --- /dev/null +++ b/me.day05.practice/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/me.day05.practice/.idea/vcs.xml b/me.day05.practice/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/me.day05.practice/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/me.day05.practice/assignment3.iml b/me.day05.practice/assignment3.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/me.day05.practice/assignment3.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/me.day05.practice/src/Practice01/Electronic.java b/me.day05.practice/src/Practice01/Electronic.java new file mode 100644 index 0000000..dddc1eb --- /dev/null +++ b/me.day05.practice/src/Practice01/Electronic.java @@ -0,0 +1,103 @@ +package Practice01; + +import java.util.Objects; +import java.util.Arrays; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +public class Electronic { + private String productNo; + private String modelName; + private CompanyName companyName; + private LocalDate dateOfMade; + private AuthMethod[] authMethods; + private static int numProducts = 0; + + public Electronic(String modelName, CompanyName companyName, LocalDate dateOfMade, AuthMethod[] authMethods){ + this.modelName = modelName; + this.companyName = companyName; + this.dateOfMade = dateOfMade; + this.authMethods = authMethods; + this.productNo = ProductNo(); + numProducts++; + } + + private String ProductNo(){ + String date = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd")); + date += String.format("%04d", numProducts+1); + return date; + } + public enum CompanyName{ + SAMSUNG , LG, APPLE + } + public enum AuthMethod{ + FINGERPRINT, PATTERN, PIN, FACE + } + + 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 CompanyName getCompanyName() { + return companyName; + } + + public void setCompanyName(CompanyName companyName) { + this.companyName = companyName; + } + + public LocalDate getDateOfMade() { + return dateOfMade; + } + + public void setDateOfMade(LocalDate dateOfMade) { + this.dateOfMade = dateOfMade; + } + + public AuthMethod[] getAuthMethods() { + return authMethods; + } + + public void setAuthMethods(AuthMethod[] authMethods) { + this.authMethods = authMethods; + } + + @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(authMethods, that.authMethods); + } + + @Override + public int hashCode() { + int result = Objects.hash(productNo, modelName, companyName, dateOfMade); + result = 31 * result + Arrays.hashCode(authMethods); + return result; + } + + @Override + public String toString() { + return "Electronic{" + + "productNo='" + productNo + '\'' + + ", modelName='" + modelName + '\'' + + ", companyName=" + companyName + + ", dateOfMade=" + dateOfMade + + ", authMethods=" + Arrays.toString(authMethods) + + '}'; + } + +} diff --git a/me.day05.practice/src/Practice01/User.java b/me.day05.practice/src/Practice01/User.java new file mode 100644 index 0000000..d2bbc89 --- /dev/null +++ b/me.day05.practice/src/Practice01/User.java @@ -0,0 +1,110 @@ +package Practice01; + +import java.util.Objects; +import java.util.Arrays; +import java.time.LocalDate; + +public class User { + private String userId; + private String userPassword; + private String userPhoneNumber; + private String userEmail; + private String userBirthDate; + private Electronic[] electronicDevices; + private LocalDate registerTime; + + public User(String userId, String userPassword, String userPhoneNumber, String userEmail, String userBirthDate){ + this.userId = userId; + this.userPassword = userPassword; + this.userPhoneNumber = userPhoneNumber; + this.userEmail = userEmail; + this.userBirthDate = userBirthDate; + this.electronicDevices = new Electronic[0]; + this.registerTime = LocalDate.now(); + } + public User(){}; + + 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 LocalDate getRegisterTime() { + return registerTime; + } + + public void setRegisterTime(LocalDate 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/me.day05.practice/src/Practice02/Users.java b/me.day05.practice/src/Practice02/Users.java new file mode 100644 index 0000000..fce12fd --- /dev/null +++ b/me.day05.practice/src/Practice02/Users.java @@ -0,0 +1,65 @@ +package Practice02; + +import Practice01.Electronic; +import Practice01.User; +import java.util.Arrays; + +public class Users { + private User[] userList; + private static Users instance = new Users(); + public static Users getInstance(){ + if(instance == null){ + instance = new Users(); + } + return instance; + } + + public User findByUserId(String userId){ + for (User user : userList){ + if(user.getUserId().equals(userId)){ + return user; + } + } + return null; + } + + public User copy(User user){ + User userCopy = new User(); + userCopy.setUserId(user.getUserId()); + userCopy.setUserEmail(user.getUserEmail()); + userCopy.setUserPassword(user.getUserPassword()); + userCopy.setUserBirthDate(user.getUserBirthDate()); + userCopy.setUserPhoneNumber(user.getUserPhoneNumber()); + userCopy.setRegisterTime(user.getRegisterTime()); + userCopy.setElectronicDevices(user.getElectronicDevices()); + return userCopy; + } + + 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/me.day05.practice/src/Practice03/Electronics.java b/me.day05.practice/src/Practice03/Electronics.java new file mode 100644 index 0000000..57ba5cb --- /dev/null +++ b/me.day05.practice/src/Practice03/Electronics.java @@ -0,0 +1,90 @@ +package Practice03; + + +import Practice01.Electronic; +import java.util.Arrays; + +public class Electronics { + private Electronic[] electronicList; + + private static Electronics instance = new Electronics(); + public static Electronics getInstance(){ + if(instance == null){ + instance = new Electronics(); + } + return instance; + } + + public Electronic findByUserId(String productNo){ + for (Electronic electronic : electronicList){ + if(electronic.getProductNo().equals(productNo)){ + return electronic; + } + } + return null; + } + + public Electronic[] groupByCompanyName(Electronic.CompanyName company){ + int count=0; + for(Electronic electronic : electronicList){ + if(electronic.getCompanyName().equals(company)){ + count++; + } + } + Electronic[] sameCompany = new Electronic[count]; + int i=0; + for(Electronic electronic : electronicList){ + if(electronic.getCompanyName().equals(company)){ + sameCompany[i] = electronic; + i++; + } + } + return sameCompany; + } + + public Electronic[] groupByAuthMethod(Practice01.Electronic.AuthMethod authMethod){ + int count=0; + for(Electronic electronic : electronicList){ + if(electronic.getAuthMethods().equals(authMethod)){ + count++; + } + } + Electronic[] sameAuthMethod = new Electronic[count]; + int i=0; + for(Electronic electronic : electronicList){ + if(electronic.getAuthMethods().equals(authMethod)){ + sameAuthMethod[i] = electronic; + i++; + } + } + return sameAuthMethod; + } + + public Electronic[] getElectronicList() { + return electronicList; + } + + public void setElectronicList(Electronic[] electronicList) { + this.electronicList = electronicList; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Electronics that = (Electronics) o; + return Arrays.equals(electronicList, that.electronicList); + } + + @Override + public int hashCode() { + return Arrays.hashCode(electronicList); + } + + @Override + public String toString() { + return "Electronics{" + + "electronicList=" + Arrays.toString(electronicList) + + '}'; + } +}