public class ListTest {
// 문자열을 저장할 List, 구현체는 ArrayList
List<String> friends = new ArrayList<>();
public static void main(String[] args) {
ListTest alt = new ListTest();
alt.createTest();
alt.retrieveTest();
alt.updateTest();
alt.deleteTest();
alt.deleteTest2();
}
public void createTest() {
// TODO: friends에 여러명의 친구를 등록해보자.
friends.add("홍길동");
friends.add("임꺽정");
friends.add(1, "장길산");
friends.add("홍길동");
// END
System.out.println("추가 후 내용 출력: " + friends);
}
public void retrieveTest() {
// TODO: 다양한 조회 기능을 사용해보자.
// 혹시 비어있지는 않나? 요소의 개수는 ?
System.out.println(friends.isEmpty()+" : " + friends.size());
// 반복을 이용한 요소 순회
for(String name : friends) {
System.out.println(name);
}
System.out.println(friends.indexOf("홍길동") + " : " + friends.lastIndexOf("홍길동"));
// 홍길동이 있다면 그 위치 출력
// END
}
public void updateTest() {
// TODO: 홍길동이 있다면 값을 율도국 왕으로 변경해보자.
int idx = friends.indexOf("홍길동");
if(idx >= 0) {
friends.set(idx, "율도국왕");
}
System.out.println("수정 후 : " + friends);
// END
}
public void deleteTest() {
// TODO: 0번째 친구와 율도국 왕을 삭제하시오.
System.out.println(friends.remove(0));
System.out.println(friends.remove("율도국왕"));
// END
System.out.println("삭제 후 : " + friends);
friends.clear();// 리스트 초기화
System.out.println("초기화 후 : " + friends);
}
public void deleteTest2() {
List<Integer> nums = new ArrayList<>();
nums.add(1);
nums.add(2);
nums.remove(1);
System.out.println(nums);
}
}
index를 이용한 for문
public class SmartPhone {
// END
String number;
public SmartPhone(String number) {
this.number = number;
}
public String toString() {
return "전화 번호: " + number;
}
// TODO: 동일한 번호의 SmartPhone이면 하나만 추가될 수 있도록 처리하시오.
@Override
public int hashCode() {
return number.hashCode();
}
@Override
public boolean equals(Object obj) {
if(obj!= null && obj instanceof SmartPhone phone) {
return this.number.equals(phone.number);
}
else return false;
}
// END
}
equals()가 true를 리턴하고 hashCode()값이 같을 것
public class MapTest {
Map<String, String> hMap = new HashMap<>();
private void addMethod() {
System.out.println("추가 성공?: " + hMap.put("andy", "1234"));
// 동일한 키의 사용 결과는?
System.out.println("추가 성공?: " + hMap.put("andy", "4567"));
hMap.put("kate", "9999");
// 기존에 해당 키에 대한 값이 없을 때만 추가하기
hMap.putIfAbsent("kate", "1234");
hMap.put("henry", "4567"); // 동일한 값
hMap.put("hong", "1234");
System.out.println("추가 결과: " + hMap);
}
private void retrieveMethod() {
// TODO: kate의 전화번호가 있나요?
System.out.println(hMap.get("kate"));
System.out.println(hMap.containsKey("kate"));
// END
// TODO: map이 가지고 있는 key와 거기에 연결된 value를 출력하시오.
Set<String> keys = hMap.keySet();
for(String key : keys) {
System.out.println("key: " + key + ", value: " + hMap.get(key));
}
// END
// TODO: 값이 4567인 사람의 이름은?
Set<Entry<String,String>> entries = hMap.entrySet();
for(Entry<String, String> entry : entries) {
System.out.println(entry.getKey() + " : " + entry.getValue());
if(entry.getValue().equals("4567")) {
System.out.println("발견: " + entry.getKey());
}
}
// END
}
private void removeMethod() {
// TODO: andy의 자료를 삭제하고 출력하시오.
hMap.remove("andy");
System.out.println("삭제 후: " + hMap);
hMap.clear();
System.out.println("초기화 후" + hMap);
// END
}
public static void main(String[] args) {
MapTest hmt = new MapTest();
hmt.addMethod();
hmt.retrieveMethod();
hmt.removeMethod();
}
}
public class SmartPhone implements Comparable<SmartPhone>{
// END
String number;
...
@Override
public int compareTo(SmartPhone o) {
return number.compareTo(o.number);
}
}
public class ListSortTest {
private List<String> names = Arrays.asList("Hi", "Java", "World", "Welcome");
public void sortPhone() {
// TODO: 전화 번호에 따라 SmartPhone을 정렬해보자.
List<SmartPhone> phones = Arrays.asList(new SmartPhone("010"), new SmartPhone("111"), new SmartPhone("001"));
Collections.sort(phones);
// END
}
}
public class StringLengthComparator implements Comparator<String>{
@Override
public int compare(String o1, String o2) {
int len1 = o1.length();
int len2 = o2.length();
return Integer.compare(len1, len2);
}
}
public void stringLengthSort() {
// TODO: 문자열의 길이에 따라 names를 정렬해보자.
Collections.sort(names, new StringLengthComparator());
// END
System.out.println(names); // [Hi, Java, World, Welcome]
}