-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathElectronics.java
More file actions
92 lines (77 loc) · 3.08 KB
/
Electronics.java
File metadata and controls
92 lines (77 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package Practice03;
import Practice01.AuthMethod;
import Practice01.Company;
import Practice01.Electronic;
import Practice02.Users;
import java.util.*;
import java.util.Arrays;
public class Electronics {
//- 객체 배열 `Electronic[] electronicList`를 필드로 가지고 있는 `Electronics`클래스를 작성하시오.
// - 필드 - Electronic[] electronicList (생성된 Electronic 객체들을 모두 저장)
// - 메소드 - 생성자, getter(), setter(), hashCode(), equals(), toString()
private static Electronic[] electroniclist;
private Electronics singleton;
private Electronics(){
}
public Electronic[] getElectroniclist() {
return electroniclist;
}
public void setElectroniclist(Electronic[] electroniclist) {
this.electroniclist = electroniclist;
}
@Override
public int hashCode() {
return Arrays.hashCode(electroniclist);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Electronics e = (Electronics) o;
return Arrays.equals(electroniclist, e.electroniclist);
}
@Override
public String toString() {
return Arrays.toString(electroniclist);
}
//3-1 Electronic 클래스의 객체를 싱글톤으로 생성하는 함수를 작성(Double Checked Locking 방식)
public Electronics getInstance(){
if(singleton==null){
synchronized (Users.class) {
if (singleton == null) {
singleton = new Electronics();
}
}
}
return singleton;
}
//3-2 전자제품 일련번호 productNo를 통해 인자로 주어진 일련번호에 해당하는 전자제품을 반환하는 함수를 작성
public static Electronic findByProductNo(String productNo){
for(int i=0; i<electroniclist.length;i++){
if(electroniclist[i].getProductNo()==productNo){
return electroniclist[i];
}
}
return null;
}
//3-3 전자제품들 중 인자로 주어진 제조 회사를 찾아서 하나의 배열에 반환하는 함수를 작성
public static List<Electronic> groupByCompanyName(Company company){
List<Electronic> groupByCompanyNamelist =new ArrayList<>();
for(int i=0; i<electroniclist.length;i++){
if(electroniclist[i].getCompanyName().equals(company)){
groupByCompanyNamelist.add(electroniclist[i]);
}
}
return groupByCompanyNamelist;
}
//3-4 전자제품들 중 인자로 주어진 인증 방법을 찾아서 하나의 배열에 반환하는 함수를 작성
public static List<Electronic> groupByAuthMethod(AuthMethod authMethod){
List<Electronic> groupByAuthMethodlist =new ArrayList<>();
for(int i=0; i<electroniclist.length;i++){
if(electroniclist[i].getArrAuth().equals(authMethod)){
groupByAuthMethodlist.add(electroniclist[i]);
}
}
return groupByAuthMethodlist ;
}
}