일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Elk
- eclips
- Git
- 클래스
- 프로그래밍
- 자바프로그래밍
- JAVA기초
- 데이터베이스
- 자바
- 초보코딩탈출
- 스프링 기초
- 컴퓨터과학개론
- 리눅스
- JShell
- 제이쉘
- Java
- 자바 스프링
- 초보코딩
- 프로그래밍언어
- 프로그래밍기초
- 알고리즘
- 자바기초
- 이클립스
- 메소드
- 기초코딩
- spring
- 배열
- github
- 스프링
- 코딩초보
- Today
- Total
키보드워리어
[자바] ArrayList 활용 본문
안녕하세요 【키보드 워리어】
⌨🗡🧑
블로그 방문자 여러분, 반갑습니다.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/002.gif)
원소들의 반복
이전에 저희는 기본 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
Collections (Java SE 17 & JDK 17)
public class Collections extends Object This class consists exclusively of static methods that operate on or return collections. It contains polymorphic algorithms that operate on collections, "wrappers", which return a new collection backed by a specified
docs.oracle.com
내용을 참고해보면
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 |