Java教程

考试记录

本文主要是介绍考试记录,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

转换问题

  1. Integerlist转为int[]
public int[] intersect(int[] nums1, int[] nums2) {
    List<Integer> list = new ArrayList<>();
    // list.add();
    return list;
    
    return list.stream().mapToInt(Integer::intValue).toArray();
}

处理巧妙问题

  • 巧妙利用递归简化问题

    class Solution {
        public int[] intersect(int[] nums1, int[] nums2) {
            if (nums1.length > nums2.length) {
                return intersect(nums2, nums1);
            }
            //处理nums1.length > nums2.length
        }
    }
    
  • 考虑好边界问题

    public static int findShortestSubArray(int[] nums) {
        if (nums.length == 1){
            return 1;
        }
        return ans;
    }
    

Map集合

初始化Map集合

  • 添加key出现的个数

    Map<Integer,Integer> map = new HashMap<>();
    for (int i = 0; i < nums.length; i++) {
        map.put(nums[i], map.getOrDefault(nums[i], 0) + 1);
    }
    

Map集合通过value获取key

  • 循环法

    //唯一值
    private <K, V> K getKeyByLoop(Map<K, V> map, V value) {
      for (Map.Entry<K, V> entry : map.entrySet()) {
        if (Objects.equals(entry.getValue(), value)) {
          return entry.getKey();
        }
      }
      return null;
    }
    //多个值
    private <K, V> Set<K> getKeysByLoop(Map<K, V> map, V value) {
      Set<K> set = Sets.newHashSet();
      for (Map.Entry<K, V> entry : map.entrySet()) {
        if (Objects.equals(entry.getValue(), value)) {
          set.add(entry.getKey());
        }
      }
      return set;
    }
    
  • Stream方法

    private <K, V> Set<K> getKeysByStream(Map<K, V> map, V value) {
      return map.entrySet()
        .stream()
        .filter(kvEntry -> Objects.equals(kvEntry.getValue(), value))
        .map(Map.Entry::getKey)
        .collect(Collectors.toSet());
    }
    
这篇关于考试记录的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!