溫馨提示×

如何利用predicate進行排序篩選

c++
小樊
82
2024-09-15 16:39:24
欄目: 編程語言

在編程中,predicate 是一個函數(shù),它接受一個參數(shù)并返回一個布爾值。通過使用 predicate 函數(shù),我們可以對列表或集合中的元素進行篩選和排序。

以下是一些常見編程語言中如何使用 predicate 進行排序和篩選的示例:

Python:

# 篩選出偶數(shù)
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 輸出: [2, 4, 6]

# 按長度排序字符串列表
strings = ["apple", "banana", "cherry", "date"]
sorted_strings = sorted(strings, key=lambda s: len(s))
print(sorted_strings)  # 輸出: ['date', 'apple', 'banana', 'cherry']

JavaScript:

// 篩選出偶數(shù)
const numbers = [1, 2, 3, 4, 5, 6];
const evenNumbers = numbers.filter(x => x % 2 === 0);
console.log(evenNumbers);  // 輸出: [2, 4, 6]

// 按長度排序字符串數(shù)組
const strings = ["apple", "banana", "cherry", "date"];
const sortedStrings = strings.sort((a, b) => a.length - b.length);
console.log(sortedStrings);  // 輸出: ['date', 'apple', 'banana', 'cherry']

Java:

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        // 篩選出偶數(shù)
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
        List<Integer> evenNumbers = numbers.stream()
                .filter(x -> x % 2 == 0)
                .collect(Collectors.toList());
        System.out.println(evenNumbers);  // 輸出: [2, 4, 6]

        // 按長度排序字符串列表
        List<String> strings = Arrays.asList("apple", "banana", "cherry", "date");
        List<String> sortedStrings = strings.stream()
                .sorted(Comparator.comparingInt(String::length))
                .collect(Collectors.toList());
        System.out.println(sortedStrings);  // 輸出: [date, apple, banana, cherry]
    }
}

這些示例展示了如何使用 predicate 函數(shù)(在 Python 中為 lambda 函數(shù),在 JavaScript 和 Java 中為箭頭函數(shù))對列表或數(shù)組進行篩選和排序。根據(jù)需要,你可以修改這些示例以適應不同的編程語言和數(shù)據(jù)類型。

0