I. 리스트 초기화, 추가/수정/삭제
1. List 만들기
주어진 값 넣고 출력하기 (3가지 방법)
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Quiz01 {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
list1.add(3);
list1.add(8);
list1.add(9);
list1.add(4);
list1.add(2);
list1.add(1);
list1.add(7);
list1.add(5);
System.out.println(list1);
asList로 하면 수정이나 삭제 불가
List<Integer> list = Arrays.asList(3, 8, 9, 4, 2, 1, 7, 5); // aslist는 한번 만들면 수정/추가/삭제 불가..
System.out.println(list);
가장 간편한 방법!
List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 8, 9, 4, 2, 1, 7, 5));
System.out.println(list2);
2. 값 수정하기 - List의 네번째 값을 6으로 바꾸고 전체 출력
List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 8, 9, 4, 2, 1, 7, 5));
System.out.println(list2);
System.out.println(list2.set(3, 6));
System.out.println(list2);
3. 값 삭제하기 - List에서 8과 7을 삭제하고 전체 출력 (두가지 방법)
index로 삭제
list1.remove(1);
list1.remove(5);
System.out.println(list1);
값으로 삭제
Integer value = 8;
Integer value1 = 7;
list1.remove(value);
list1.remove(value1);
System.out.println(list1);
II. 반복문으로 리스트 접근하기
1. List 만들기
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>(Arrays.asList(20, 3, 5, 84, 17));
System.out.println(numbers);
}
2. 최소값 구하기 (for문 사용)
int min = numbers.get(0);
for (int i = 1; i < numbers.size(); i++) {
if (numbers.get(i) < min) {
min = numbers.get(i);
i++;
}
}
System.out.println(min);
3. 합계 구하기 (Iterator 사용)
Iterator<Integer> iter = numbers.iterator();
int sum = 0;
while (iter.hasNext()) {
sum += iter.next();
}
System.out.println(sum);
III. 리스트가 제공하는 함수 사용하기
1. 체조 경기 평균 점수 (for 문) - 최고점과 최저점을 제외한 나머지 점수의 평균
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>(Arrays.asList(8, 7, 6, 10, 9, 4));
numbers.sort(Comparator.naturalOrder());
numbers.remove(0);
numbers.remove(numbers.size()-1);
int sum = 0;
for (int i = 0; i < numbers.size(); i++) {
sum += numbers.get(i);
}
double average = sum / (double) numbers.size();
System.out.println("최고점과 최저점을 제외한 평균 점수는 " + average);
2. 회원 추가하기 (3가지 방법)
방법 1 ( 더 효율적임)
List<String> names = new ArrayList<>(Arrays.asList("우솝", "루피", "상디", "나미", "로빈"));
List<String> newNames = new ArrayList<>(Arrays.asList("보람", "루피", "쵸파", "로빈", "루피"));
List<String> resultList = new ArrayList<>();
resultList.addAll(names);
for (int i = 0; i < names.size(); i++) { // 기존 회원 (기준이 됌)
int count = 0; // 이름 옆에 붙는 숫자
for (int j = 0; j < newNames.size(); j++ ) { // 새회원 (비교 대상)
if (names.get(i).equals(newNames.get(j))) {
count++;
newNames.set(j, newNames.get(j) + count);
}
}
}
resultList.addAll(newNames);
System.out.println(resultList);
방법 2
List<String> names = new ArrayList<>(Arrays.asList("우솝", "루피", "상디", "나미", "로빈"));
List<String> newNames = new ArrayList<>(Arrays.asList("보람", "루피", "쵸파", "로빈", "루피"));
List<String> resultList = new ArrayList<>();
resultList.addAll(names);
int count = 1;
for (int i = 0; i < newNames.size(); i++) { // 새 회원 기준
if (names.contains(newNames.get(i) )) { // 참 = 있는경우
String name = newNames.get(i) + count;
if (names.contains(name)) {
i--; // 이름 + 번호 다시 검사하기 위해 같은 이름으로 반복문을 또 돌린다.
count++;
continue;
}
names.add(name);
count = 1;
} else { // 없을 경우
names.add(newNames.get(i));
}
}
System.out.println(names);
방법 3
List<String> names = new ArrayList<>(Arrays.asList("우솝", "루피", "상디", "나미", "로빈"));
List<String> newNames = new ArrayList<>(Arrays.asList("보람", "루피", "쵸파", "로빈", "루피"));
List<String> resultList = new ArrayList<>();
resultList.addAll(names);
for (int i = 0; i < newNames.size(); i++) {
String newName = newNames.get(i);
int count = 1;
while (names.contains(newName)) {
newName = newNames.get(i) + count;
count++;
}
names.add(newName);
} System.out.println(names);
'Web Developer > JAVA II' 카테고리의 다른 글
10. Map 예제 (1) | 2023.01.22 |
---|---|
9. Set 예제 - 사용법 (0) | 2023.01.22 |
8. List 예제 (0) | 2023.01.22 |
7. Wrapper Class 예제 (0) | 2023.01.22 |
6. Interface 연습문제 (0) | 2023.01.15 |