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

  • 相关阅读:
    安卓高级6 拍照或者从相册获取图片 并检测旋转角度或者更新画册扫描
    安卓高级6 玩转AppBarLayout,更酷炫的顶部栏 Toolbar
    安卓高级6 CoordinatorLayout
    安卓高级6 SnackBar
    android addCategory()等说明
    Eclipse如何解决启动慢?
    Java基础知识总结(绝对经典)
    java反射详解 三
    java反射详解 二
    java反射详解 一
  • 原文地址:https://www.cnblogs.com/yangpeng-jingjing/p/8473037.html
Copyright © 2020-2023  润新知