일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 메소드
- 프로그래밍기초
- JShell
- Java
- 프로그래밍
- 클래스
- 이클립스
- JAVA기초
- eclips
- 코딩초보
- 기초코딩
- Git
- 스프링 기초
- spring
- 스프링
- Elk
- 배열
- 컴퓨터과학개론
- 제이쉘
- github
- 프로그래밍언어
- 자바 스프링
- 자바
- 자바기초
- 리눅스
- 초보코딩탈출
- 초보코딩
- 자바프로그래밍
- 데이터베이스
- 알고리즘
- Today
- Total
키보드워리어
[자바] ArrayList 활용 본문
안녕하세요 【키보드 워리어】
⌨🗡🧑
블로그 방문자 여러분, 반갑습니다.
원소들의 반복
이전에 저희는 기본 for문과 enhanced for loop문에 대해 배웠습니다.
List<String> words = List.of("Apple","Banana","Cat");
위와 같은 배열이 있다고 가정할 때 이를 출력하기 위해서 썼었죠.
for(int i = 0; i < words.size(); i++){
String word = words.get(i);
System.out.println(word);
} //for문
for(String word : words){
System.out.println(word);
} //enhanced for문
Iterator를 사용하여 단어 배열을 반복할 수 있습니다.
Iterator는 한 번에 하나씩 컬렉션의 요소에 액세스하는 방법을 제공합니다. 예를 들면 다음과 같습니다.
Iterator<String> iterator = words.iterator(); //Iterator객체 생성
while(iterator.hasNext()){ //hasNext는 다음 요소가 있으면 참을 반환.
String word = iterator.next(); //next를 통해 다음의 요소를 word로 줄 수 있습니다.
System.out.println(word); //word 출력
}
ArrayList에 대한 수정
만약 제가 배열에 내용을 바꾸고자 한다면, 이미 말씀드린 Enhanced for문을 사용해서 List의 요소를 수정할 수 있지만,
이를 위해서는 Iterator를 사용하는것이 좋습니다.
이는 Iterator가 컬렉션을 반복하는 동안 컬렉션을 수정하는 안전한 방법을 제공하기 때문입니다.
Iterator<String> iterator = words.iterator();
while(iterator.hasNext()){
String word = iterator.next();
if(word.equals("Apple")){
iterator.remove(); //Apple 삭제
}
}
ArrayList 정렬(오름차순, 내림차순)
마지막으로 sort() 메서드를 사용하여 목록을 정렬하는 방법에 대해 설명하겠습니다.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collections.html
내용을 참고해보면
Sorts the specified list into ascending order, according to the natural ordering of its elements.
리스트를 오름차순으로 정렬해준다고 되어있습니다.
Collections 클래스는 목록을 정렬하는 데 사용할 수 있는 정적 sort() 메서드를 통해서 제공합니다.
예를 들면 다음과 같습니다.
List<Integer> numbers = new ArrayList<>();
numbers.add(123);
numbers.add(12);
numbers.add(3);
numbers.add(45);
Collections.sort(numbers); // sort in 오름차순
System.out.println(numbers); // output: [3, 12, 45, 123]
이 Collections는 Comparabls 인터페이스를 구현한것으로, 이를통해 여러가지 로직을 만들 수 있는데 예를 들어
내림차순으로 정렬하기 위해서는Comparable 인터페이스를 구현하는 클래스를 생성하고 큰 수로 정렬하도록 compareTo() 메서드를 재정의할 수 있습니다.
public class MyNumber implements Comparable<MyNumber>{
private int number;
public MyNumber(int number){
this.number = number;
}
public int getNumber(){
return number;
}
@Override
public int compareTo(MyNumber otherNumber){
return otherNumber.getNumber() - this.number; // sort in 내림차순 정렬
}
}
List<MyNumber> numbers = new ArrayList<>();
numbers.add(new MyNumber(123));
numbers.add(new MyNumber(12));
numbers.add(new MyNumber(3));
numbers.add(new MyNumber(45));
Collections.sort(numbers); // 큰 숫자부터 정렬
for(MyNumber num : numbers){
System.out.println(num.getNumber());
}
'JAVA > 입문' 카테고리의 다른 글
[자바] Set 자료구조 살펴보기 (0) | 2023.04.11 |
---|---|
[자바] Collection 활용 - 2 (0) | 2023.04.10 |
[자바] 컬렉션 소개: Java의 List 이해 (0) | 2023.03.16 |
[자바] 인터페이스에 관한 이야기 (interface) (0) | 2023.03.12 |
[자바] 추상클래스 제한과 활용 (0) | 2023.03.11 |