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);
    }
    }

  • 相关阅读:
    syslog远程日志存储/514端口【转】
    干掉僵尸进程
    以太网,IP,TCP,UDP数据包分析【转】
    suricata 的安装编译
    libpcap详解【转】
    蛋疼的经历--wireshark不能启动的问题
    Ubuntu中root用户和user用户的相互切换[转载自93度的饼干]
    OSI七层与TCP/IP五层网络架构详解
    __cplusplus的用法(转)
    IPsec ISAKMP(转)
  • 原文地址:https://www.cnblogs.com/yangpeng-jingjing/p/8473037.html
Copyright © 2011-2022 走看看