zoukankan      html  css  js  c++  java
  • java 交集 差集 并集

    package com.wish.datastrustudy;
    import java.util.HashSet;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Set;
    public class StringArray {
    public static void main(String[] args) {
    //测试union
    String[] arr1 = {"abc", "df", "abc","dd","bdfe"};
    String[] arr2 = {"abc", "cc", "df", "d", "abc"};
    String[] result_union = union(arr1, arr2);
    System.out.println("求并集的结果如下:");
    for (String str : result_union) {
    System.out.println(str);
    }

    //测试insect
    String[] result_insect = intersect(arr1, arr2);
    System.out.println("求交集的结果如下:");
    for (String str : result_insect) {
    System.out.println(str);
    }
    //测试 substract
    String[] result_minus = substract(arr1, arr2);
    System.out.println("求差集的结果如下:");
    for (String str : result_minus) {
    System.out.println(str);
    }
    }

    //并集(set唯一性)
    public static String[] union (String[] arr1, String[] arr2){
    Set<String> hs = new HashSet<String>();
    for(String str:arr1){
    hs.add(str);
    }
    for(String str:arr2){
    hs.add(str);
    }
    String[] result={};
    return hs.toArray(result);
    }

    //交集(注意结果集中若使用LinkedList添加,则需要判断是否包含该元素,否则其中会包含重复的元素)
    public static String[] intersect(String[] arr1, String[] arr2){
    List<String> l = new LinkedList<String>();
    Set<String> common = new HashSet<String>();
    for(String str:arr1){
    if(!l.contains(str)){
    l.add(str);
    }
    }
    for(String str:arr2){
    if(l.contains(str)){
    common.add(str);
    }
    }
    String[] result={};
    return common.toArray(result);
    }
    //求两个数组的差集
    public static String[] substract(String[] arr1, String[] arr2) {
    LinkedList<String> list = new LinkedList<String>();
    for (String str : arr1) {
    if(!list.contains(str)) {
    list.add(str);
    }
    }
    for (String str : arr2) {
    if (list.contains(str)) {
    list.remove(str);
    }
    }
    String[] result = {};
    return list.toArray(result);
    }
    }

  • 相关阅读:
    关于解决Python中requests模块在PyCharm工具中导入问题
    arcgis javascript api 事件的监听及移除
    零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)
    python 爬取全量百度POI
    Webpack安装使用总结
    开源协议之间的区别
    npm指令后缀
    nrm的作用(及安装)
    Vuejs中关于computed、methods、watch的区别
    VUE参考---watch、computed和methods之间的对比
  • 原文地址:https://www.cnblogs.com/yangpeng-jingjing/p/8473037.html
Copyright © 2011-2022 走看看