Java 与 Rust 性能对比

最近在学习 Rust 语言,然后用力扣刷题时候发现 Rust 的性能是比较好的,力扣题目如下

Java 与 Rust 性能对比_第1张图片
题目地址 6120. 数组能形成多少数对

Java 代码

public int[] numberOfPairs(int[] nums) {
        Map<Integer, Integer> countMap = new HashMap<>();
        for (int num : nums) {
            Integer count = countMap.computeIfAbsent(num,  k -> 0);
            countMap.put(num, ++count);
        }
        int pair = 0;
        int notPair = 0;
        for (Map.Entry<Integer, Integer> entry : countMap.entrySet()) {
            int count = entry.getValue();
            if (count % 2 != 0) {
                notPair++;
            }
            pair = pair + count / 2;
        }
        int[] result = new int[2];
        result[0] = pair;
        result[1] = notPair;
        return result;
    }

Rust 代码

use std::collections::HashMap;

pub fn number_of_pairs(nums: Vec<i32>) -> Vec<i32> {
    let mut result = Vec::new();
    let mut count_map = HashMap::new();
    for num in nums {
        let count = count_map.get(&num);
        if count.is_none() {
            count_map.insert(num, 1);
        } else {
            count_map.insert(num, count.unwrap() + 1);
        }
    }
    let mut pair = 0;
    let mut not_pair_count = 0;
    for (num, count) in count_map {
        if count % 2 != 0 {
            not_pair_count = not_pair_count + 1;
        }
        pair = pair + count / 2;
    }
    result.push(pair);
    result.push(not_pair_count);
    return result;

}

性能对比

Java 和 Rust 的写的时间复杂度与空间复杂度一样的,多次提交之后,力扣系统给出的结果感觉到性能·差异太大了,如下图所示

Java 与 Rust 性能对比_第2张图片

Rust 相关学习资料

  1. Rust 官方文档中文教程
  2. rustlings
  3. Rust标准库

你可能感兴趣的:(后端,rust,java,开发语言)