Java의 필터 목록
목록 필터링은 Java에서 작업하는 동안 자주 필요합니다. Java에서 목록을 필터링하는 여러 방법은 핵심 Java 및 다른 라이브러리를 사용합니다.
이 자습서는 Java에서 목록을 필터링하는 방법을 보여줍니다.
Java 7 이상을 사용하여 목록 필터링
Java 7 및 이전 버전을 사용하여 목록을 반복하여 Java에서 목록을 필터링할 수 있습니다.
for
루프 사용
한 가지 방법은 for
루프와 조건문을 사용하는 것입니다. 예를 보자:
package delftstack;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Example {
public static void main(String[] args) {
List<String> Demo_List = Arrays.asList("Jack", "Shawn", "Jhon", "Michelle", "Joey");
// Using Java 7 and before:
// empty list
List<String> Filtered_List = new ArrayList<>();
// iterate through the list
for (String Demo_Entry : Demo_List) {
// filter values that start with `B`
if (Demo_Entry.startsWith("J")) {
Filtered_List.add(Demo_Entry);
}
}
System.out.println(Filtered_List);
}
}
위의 코드는 for
및 if
를 사용하여 주어진 목록에서 문자 J
로 이름을 필터링합니다. 출력 참조:
[Jack, Jhon, Joey]
remove()
메서드 사용
또 다른 방법은 Iterator
클래스의 remove()
메소드를 사용하여 목록을 필터링하는 것입니다. 예를 보자:
package delftstack;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class Example {
public static void main(String[] args) {
List<String> Demo_List =
new ArrayList<>(Arrays.asList("Jack", "Shawn", "Jhon", "Michelle", "Joey"));
// Using Java 7 and before:
// get an iterator to the list
Iterator<String> Demo_Iterator = Demo_List.iterator();
// iterate through the list
while (Demo_Iterator.hasNext()) {
String Demo = Demo_Iterator.next();
// filter values that start with `B`
if (!Demo.startsWith("J")) {
Demo_Iterator.remove();
}
}
System.out.println(Demo_List);
}
}
이 코드는 remove()
메서드 및 while
루프와 함께 Iterator
를 사용하여 주어진 목록에서 J
문자로 이름을 필터링합니다. 출력 참조:
[Jack, Jhon, Joey]
Java 8을 사용하여 목록 필터링
Java 8에서 목록을 필터링하기 위해 목록을 스트림으로 변환한 다음 필터링하는 접근 방식을 사용할 수 있습니다. 이는 Java 8에서 목록을 필터링하는 데 권장되는 방법입니다.
예를 참조하십시오.
package delftstack;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Example {
public static void main(String[] args) {
List<String> Demo_List =
new ArrayList<>(Arrays.asList("Jack", "Shawn", "Jhon", "Michelle", "Joey"));
// Using Java 8 and above:
String Filtered_List = Demo_List.stream()
.filter(entry -> entry.startsWith("J"))
.collect(Collectors.joining(", ", "[", "]"));
System.out.println(Filtered_List);
}
}
위의 코드는 stream()
을 사용하여 문자 J
가 있는 이름으로 목록을 필터링합니다. 출력 참조:
[Jack, Jhon, Joey]
보시다시피 위의 코드는 목록을 출력의 문자열로 변환합니다. Stream
을 사용하여 출력을 목록으로 변환할 수도 있습니다.
예를 참조하십시오.
package delftstack;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Example {
public static void main(String[] args) {
List<String> Demo_List =
new ArrayList<>(Arrays.asList("Jack", "Shawn", "Jhon", "Michelle", "Joey"));
// Using Java 8 and above:
List<String> Filtered_List =
Demo_List.stream().filter(entry -> entry.startsWith("J")).collect(Collectors.toList());
System.out.println(Filtered_List);
}
}
위의 코드는 필터링된 목록 출력을 목록으로 변환합니다. 출력 참조:
[Jack, Jhon, Joey]
Google Guava를 사용하여 목록 필터링
Guava
라이브러리에는 Java에서 목록을 필터링하는 데 사용할 수 있는 Iterable
및 FluentIterable
이 포함되어 있습니다. Iterable
클래스에는 목록을 필터링하는 filter()
메서드가 포함됩니다.
Guava
라이브러리는 Maven 프로젝트에 다음 종속성을 추가하여 사용할 수 있습니다.
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
이제 Google Guava 라이브러리의 Iterable
을 사용하여 예제를 시도해 보겠습니다.
package delftstack;
import com.google.common.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Example {
public static void main(String[] args) {
List<String> Demo_List =
new ArrayList<>(Arrays.asList("Jack", "Shawn", "Jhon", "Michelle", "Joey"));
Iterable<String> Filtered_Iterable =
Iterables.filter(Demo_List, new com.google.common.base.Predicate<String>() {
@Override
public boolean apply(String s) {
return s.startsWith("J");
}
});
List<String> Filtered_List = Lists.newArrayList(Filtered_Iterable);
System.out.println(Filtered_List);
}
}
이 코드는 문자 J
로 시작하는 이름으로 지정된 목록을 필터링합니다. 출력 참조:
[Jack, Jhon, Joey]
FluentIterable
을 사용하여 예제를 살펴보겠습니다.
package delftstack;
import com.google.common.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Example {
public static void main(String[] args) {
List<String> Demo_List =
new ArrayList<>(Arrays.asList("Jack", "Shawn", "Jhon", "Michelle", "Joey"));
List<String> Filtered_List = FluentIterable.from(Demo_List)
.filter(new com.google.common.base.Predicate<String>() {
@Override
public boolean apply(String s) {
return s.startsWith("J");
}
})
.toList();
System.out.println(Filtered_List);
}
}
위의 코드는 Google Guava 라이브러리의 FluentIterable
을 사용하여 문자 J
로 시작하는 목록에서 이름을 필터링합니다. 출력 참조:
[Jack, Jhon, Joey]
Apache Commons를 사용하여 목록 필터링
Apache Commons는 목록을 필터링하는 데 사용할 수 있는 CollectionUtils
클래스를 제공합니다. Apache Commons를 사용하려면 Maven 프로젝트에 다음 종속성을 추가합니다.
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
이제 CollectionUtils
를 사용하여 목록을 필터링하는 예제를 시도해 보겠습니다.
package delftstack;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
public class Example {
public static void main(String[] args) {
List<String> Demo_List =
new ArrayList<>(Arrays.asList("Jack", "Shawn", "Jhon", "Michelle", "Joey"));
List<String> Filtered_List = new ArrayList<>(Demo_List);
CollectionUtils.filter(Filtered_List, new Predicate<String>() {
@Override
public boolean evaluate(String s) {
return s.startsWith("J");
}
});
System.out.println(Filtered_List);
}
}
위의 코드는 CollectionUtils
메서드를 사용하여 문자 J
로 시작하는 이름으로 목록을 필터링합니다. 출력 참조:
[Jack, Jhon, Joey]
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook