티스토리 뷰
필터와 리스너는 모두 데이터 처리에 사용되는 개념을 말하는데, 각 목적과 작동 방식에 차이가 존재를 합니다.
필터
데이터 스트림에서 특정 조건에 부합하는 데이터만을 선별해 출력하는 것이 목적이고, 데이터가 입력되면 필터가 정의된 조건을 검사하고, 조건에 부합하는 데이터만을 출력을 합니다.
import java.util.stream.Stream;
public class FilterExample {
public static void main(String[] args) {
// 숫자 리스트
Stream<Integer> numbers = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 필터링: 짝수만 선별
Stream<Integer> evenNumbers = numbers.filter(n -> n % 2 == 0);
// 필터링된 결과 출력
evenNumbers.forEach(System.out::println);
}
}
리스너
데이터 스트림의 변화를 감지하며 거기에 대응을 하는 것을 목적을 둡니다. 감지에 따라 그에 따른 이벤트를 발생시키는데 그럴 때마다 정의된 콜백 함수를 실행하도록 합니다.
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ListenerExample extends JFrame {
public ListenerExample() {
setTitle("Listener Example");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
// 버튼 생성
JButton button = new JButton("Click me!");
// 버튼 클릭 리스너 등록
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 버튼 클릭 시 실행되는 코드
JOptionPane.showMessageDialog(ListenerExample.this, "Button clicked!");
}
});
// 버튼을 프레임에 추가
getContentPane().add(button, "Center");
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ListenerExample().setVisible(true);
}
});
}
}
'궁금한 것' 카테고리의 다른 글
Resolver란 (0) | 2024.01.25 |
---|---|
Form태그 / a태그 (0) | 2024.01.25 |
xml 파일이란 (0) | 2024.01.25 |
자주 뜨는 Error code number에 대한 것들 (0) | 2024.01.01 |
DAO와 DTO에 대한 정의 및 차이점 (0) | 2024.01.01 |