• // 原数组 const serveralArr = [ [1,2,4,5,23,3,2,2,4,3,5,5], [3,2,3,2,2,4,3,1,4,5,6], [3,2,4,3,2,4,1,2,5], [3,2,4,5,5,4,3,1,2,2], [3,2,23,3,4,1,3,4,5,5,4,3,1,2,2], [3,2,4,1,2,5,5,4,3,1,2,2], [3,2,4,25,...

// 原数组
const serveralArr = [
[1,2,4,5,23,3,2,2,4,3,5,5],
[3,2,3,2,2,4,3,1,4,5,6],
[3,2,4,3,2,4,1,2,5],
[3,2,4,5,5,4,3,1,2,2],
[3,2,23,3,4,1,3,4,5,5,4,3,1,2,2],
[3,2,4,1,2,5,5,4,3,1,2,2],
[3,2,4,25,5,4,3,1,2,2],
]
// ES5 方法实现数学意义上的交集结果
const intersectNoRepeatFirst = serveralArr => {
let minArr = serveralArr[0]
serveralArr.forEach(item => {
if(item.length < minArr.length){
minArr = item
}
})
const result = []
minArr.forEach(item => {
serveralArr.forEach(j => {
if(j.includes(item) && !result.includes(item)){
result.push(item)
}
})
})
return result
}
// ES6 方法实现数学意义上的交集结果
const intersectNoRepeatTwice = arrs => {
return arrs.reduce(function(prev,cur){
// return […new Set(cur.filter((item)=>prev.includes(item)))]
return Array.from(new Set(cur.filter((item)=>prev.includes(item))))
})
}
// 输出数学意义上的交集结果
console.log(intersectNoRepeatFirst(serveralArr), intersectNoRepeatTwice(serveralArr)) // => (5) [3, 2, 4, 1, 5]; (5) [3, 2, 4, 5, 1]
// ES5 方法实现有重复元素的交集结果
const intersectRepeat = arr => {
const result = []
const tempArr = []
arr.forEach(item => {
const obj = {}
item.forEach(j => {
if(obj.hasOwnProperty(j)){
obj[j] += 1
}else{
obj[j] = 1
}
})
tempArr.push(obj)
})
let arrr = tempArr[0]
tempArr.forEach(item => {
if(item.length < arrr.length){
arrr = item
}
})
const newOjb = {}
Object.keys(arrr).forEach(item => {
newOjb[item] = Math.min.apply(Math, tempArr.map(function(o) {return o[item]}))
})
Object.keys(newOjb).forEach(item => {
if(newOjb[item]){
for(let i = 0; i < newOjb[item]; i++){
result.push(Number(item))
}
}
})
return result
}
// 输出有重复元素的交集结果
console.log(intersectRepeat(serveralArr)) // => (9) [1, 2, 2, 2, 3, 3, 4, 4, 5]

展开全文
• 下面贴出代码：import java.util.HashMap;import java.util.LinkedList;import java.util.Map;import org.apache.commons.lang.StringEscapeUtils;import ...public class Test {public stat...

下面贴出代码：

import java.util.HashMap;

import java.util.Map;

import org.apache.commons.lang.StringEscapeUtils;

import com.alibaba.fastjson.JSONObject;

public class Test {

public static void main(String[] args) {

String str1 = "产品:业务:流程:注册:审核";

String str2 = "产品:业务:流程:签订:录入";

String[] split1 = str1.split(":"); String[] split2 = str2.split(":"); String[] intersect = intersect(split1, split2);

for (String str : intersect) System.out.println(str);

}

public static String[] intersect(String[] arr1, String[] arr2) {

Map map = new HashMap<>();

for (String str : arr1) {

if (!map.containsKey(str)) {

map.put(str, Boolean.FALSE);

}

}

for (String str : arr2) {

if (map.containsKey(str)) {

map.put(str, Boolean.TRUE);

}

}

for (Map.Entry e : map.entrySet()) {

if (e.getValue().equals(Boolean.TRUE)) {

}

}

String[] result = {};

return list.toArray(result);

}

}

展开全文
• array_intersect() 函数定义和用法array_intersect() 函数用于比较两个(或更多个)数组的键值，并返回交集。该函数比较两个(或更多个)数组的...说明array_intersect() 函数返回两个或多个数组交集数组。结果数组包...

array_intersect() 函数

定义和用法

array_intersect() 函数用于比较两个(或更多个)数组的键值，并返回交集。

该函数比较两个(或更多个)数组的键值，并返回交集数组，该数组包括了所有在被比较的数组(array1)中，同时也在任何其他参数数组(array2 或 array3 等等)中的键值。

说明

array_intersect() 函数返回两个或多个数组的交集数组。

结果数组包含了所有在被比较数组中，也同时出现在所有其他参数数组中的值，键名保留不变。

注释：仅有值用于比较。

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");$a2=array("e"=>"red","f"=>"black","g"=>"purple");

$a3=array("a"=>"red","b"=>"black","h"=>"yellow");$result=array_intersect($a1,$a2,$a3); print_r($result);

// 输出Array ( [a] => red )

?>

array_intersect_key() 函数

定义和用法

array_intersect_key() 函数用于比较两个(或更多个)数组的键名 ，并返回交集。

该函数比较两个(或更多个)数组的键名，并返回交集数组，该数组包括了所有在被比较的数组(array1)中，同时也在任何其他参数数组(array2 或 array3 等等)中的键名。

说明

array_intersect_key() 函数使用键名比较计算数组的交集。

array_intersect_key() 返回一个数组，该数组包含了所有出现在被比较的数组中并同时出现在所有其它参数数组中的键名的值。

注释：仅有键名用于比较。

$a1=array("a"=>"red","b"=>"green","c"=>"blue");$a2=array("c"=>"yellow","d"=>"black","e"=>"brown");

$a3=array("f"=>"green","c"=>"purple","g"=>"red");$result=array_intersect_key($a1,$a2,$a3); print_r($result);

// 输出Array ( [c] => blue )

?>

array_intersect_assoc() 函数

定义和用法

array_intersect_assoc() 函数用于比较两个(或更多个)数组的键名和键值，并返回交集。

该函数比较两个(或更多个)数组的键名和键值，并返回交集数组，该数组包括了所有在被比较的数组(array1)中，同时也在任何其他参数数组(array2 或 array3 等等)中的键名和键值。

说明

array_intersect_assoc() 函数返回两个或多个数组的交集数组。

与 array_intersect() 函数 不同的是，本函数除了比较键值，还比较键名。返回的数组中元素的键名保持不变。<?php

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");$a2=array("a"=>"red","b"=>"green","g"=>"blue");

$a3=array("a"=>"red","b"=>"green","g"=>"blue");$result=array_intersect_assoc($a1,$a2,$a3); print_r($result);

// 输出Array ( [a] => red [b] => green )

?>

展开全文
• public class StringArrayUtil {// 求两字符串数组的并集，利用set的元素唯一性public static String[] union(String[] arr1, String[] arr2) {Set set = new HashSet<>();Collections.addAll(set, arr...

直接上代码。

import java.util.*;

public class StringArrayUtil {

// 求两个字符串数组的并集，利用set的元素唯一性

public static String[] union(String[] arr1, String[] arr2) {

Set set = new HashSet<>();

String[] result = {};

return set.toArray(result);

}

// 求两个数组的交集

public static String[] intersect(String[] arr1, String[] arr2) {

Map map = new HashMap<>();

for (String str : arr1) {

if (!map.containsKey(str)) {

map.put(str, Boolean.FALSE);

}

}

for (String str : arr2) {

if (map.containsKey(str)) {

map.put(str, Boolean.TRUE);

}

}

for (Map.Entry e : map.entrySet()) {

if (e.getValue().equals(Boolean.TRUE)) {

}

}

String[] result = {};

return list.toArray(result);

}

// 求两个数组的差集

public static String[] minus(String[] arr1, String[] arr2) {

String[] longerArr = arr1;

String[] shorterArr = arr2;

// 找出较长的数组来减较短的数组

if (arr1.length > arr2.length) {

longerArr = arr2;

shorterArr = arr1;

}

for (String str : longerArr) {

if (!list.contains(str)) {

}

}

for (String str : shorterArr) {

if (list.contains(str)) {

list.remove(str);

} else {

if (!history.contains(str)) {

}

}

}

String[] result = {};

return list.toArray(result);

}

}

字符串数组的操作在平常的业务开发中用得比较多，是每个Java开发者都应当掌握的技能。

"大人的每一次流泪，都是一场无声的孤独。"

来源：https://www.cnblogs.com/yanggb/p/12798160.html

展开全文
• JS数组取交集、并集

千次阅读 2021-03-02 22:07:23
简单数组 如果数组中仅是字符串和数值 es5 var a = [1,2,3], b = [2,3,4,5]; // 交集---[1,2,3,4,5] var intersection = a.concat(b.filter(item => {a.indexOf(item) === -1})) // 并集---[2,3] var union= a....
• let arr = [ [1, 2, 3, 4], [3, 4, 6], [4, 5], [4, 5, 8, 9], ...通过filter返回,上一次数组中和当前数组的交集,然后下一次又通过交集比较当前数组,最终获取获取到多个数组交集 原理就是每次通过上一次比较
• 给定多个数组，请输出所有数组的交集。例如有三个数组 [1,2, 3, 4, 5]，[1, 4, 5, 7]，[2, 4, 5, 8]，则输出交集为[4,5] 利用遍历+二分查找的方法。选定一个一个数组，假设选第一个数组，我们依次遍历数组，然后在...
• 这是使用unique和accumarray的矢量化方法,假设输入单元阵列的每单元格中没有重复 –[~,~,idx] = unique([tsCell_time{:}],'stable')out = tsCell_time{1}(accumarray(idx,1) == length(tsCell_time))样品运行 –&...
• 多个数组交集，每个数组里面都是对象 const arr = [ [{v:12}, {v:7}, {v:8}, {v:15}], [{v:8}, {v:15}, {v:7}], [{v:7}, {v:8}, {v:12}], [{v:7}] ] function getIntersection(arrs = null) { if (arrs....
• PHP的这个内置函数array_intersect_key()用于计算两个或多个数组交集。该函数不同于array_intersect()和array_intersect_assoc()，它使用键进行比较并返回匹配的关键元素。该函数只打印第一个数组的元素，其键值与...
• 我的目标是找出数组a和b的交集值并...如何将给定值分配给第3个数组c？public static void main(String[] args) {int a[] = {3, 10, 4, 2, 8};int[] b = {10, 4, 12, 3, 23, 1, 8};int[] c;int i=0;for(int f=0;ffor...
• 求两个数组交集 let arr1 =[0,2,4,5,7] let arr2 = [0,3,5,6,8,4,9,55] var newarr = arr1 .filter((v) => arr2 .includes(v)) //也可以用,不考虑(数组中不含NaN) newarr = arr1.filter((v)=> arr2.indexOf...
• PHP中二维数组取交集的方法：首先循环其中一个数组；然后使用in_array()函数判断被循环数组的每个元素是否在另外一个数组中；最后输出$out_arr即可。PHP二维数组怎么取交集？思路，循环其中一个数组，然后使用ｉn_... • 那么如何获得多个排序数组的交集呢？基于两个排序数组的答案,我们可以将其应用于多个数组.这是代码vector intersectionVector(vector > vectors){int vec_num = vectors.size();vector vec_pos(vec_num);// hold ... • 问题：因此我将以上问题转换成了比较两个(本例考虑多个)超大数组交集！所以要求时间复杂度、空间复杂度应该尽可能的低！降低内存：由于要将文件的每一行都读到内存里，如果行的长度比较大的话，内存肯定是不够的！... • //多个数组取交集，array是一个二维数组。[[1,2,3],[3,4,5]],keys就是条件 function getIntersection(array, keys) { //2个数组的交集 function intersection(getar1, geta2, key) { let arr = getar1.map(item ... • 结果 Array ( [0] => zero_a [2] => two_a [3] => three_a [1] => one_b [4] => four_b ) 交集 array_intersect 第一个数组是主值，返回有相同元素的值（判断依据是元素字符串相同，即 (string)$elem1 === (string...
• 这篇文章主要介绍了PHP获得数组交集与差集的方法,实例分析了array_intersect与array_diff方法在求数组交集与差集时的使用技巧,需要的朋友可以参考下本文实例讲述了PHP获得数组交集与差集的方法。分享给大家供大家...
• 对象数组常会进行取交集或者差集的操作。 假设有对象数组A和对象数组B，常规方法是比较B对象数组与A对象数组的差异，进而找到其差集或者交集。 但是现在面临的问题是数组A 和数组B中的对象可能不完全一样的情况，可...
• 初始点我有一多数组,如下面的例子.$array = array ('role_1' =>array (0 => 'value_2',0 => 'value_3',),'role_2' =>array (0 => 'value_1',1 => 'value_2',),'role_3' =>array (0 => '... • 返回结果中每个元素出现的次数，应与元素在两个数组中都出现的次数一致（如果出现次数不一致，则考虑较小值）。可以不考虑输出结果的顺序。 思路解析： 由于同一个数字在两个数组中都可能出现次，因此需要用... • vector Intersect(vectora,vetor b)//交集 { vector result; map<int, int>temp; for (int i = o; i < a.size(); i++) temp [a[i]]++; for (int j = 0; j < b.size(); j++) { if (temp[b[j • JS计算两个数组交集、差集、并集、补集（多种实现方式）方法一：最普遍的做法1、直接使用 filter、concat 来计算2、对 Array 进行扩展方法二：使用 ES6 语法实现方法三：使用 jQuery 实现运行结果 方法一：最普遍... • 在PHP中，可以使用内置函数array_intersect()来查找两个数组交集，它可以返回两个数组的公共元素(相交部分)。下面我们就来具体介绍一下。array_intersect()函数基本语法：array_intersect($ array1，\$ array2)说明...
• 示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明：输出结果中每个元素出现的次数，应与元素在两个数组中出现的次数一致。我们可以不...
• 背景工作多年，语言经历过C#,JAVA。但是做过的项目大多以业务系统为主，曾经做过一些基础架构的工作，但算法一直在工作中应用的比较少，导致...案例有两个数组，int[] arrayA=new int[]{1,3,1.....},int[] arrayB=ne...
• 题目大意: 要求输出两个数组交集元素,如果元素出现次,则需要输出次. 解题思路: 这道题利用字典可以达到最优解.把其中一组数子放到字典中,另外字典的key是数组中的数字,value是这个数字出现的次 数.在扫描另外...
• Document//数组判断是否含有某个元素Array.prototype.contains = function (obj) {var i = this.length;while (i--) {if (this[i] === obj) {return true;}}return false;}//数组去重Array.prototype.uniquelize = ...
• 在php中如何处理两个或多个数组的并集，交集和差集的函数。(1)php计算两个或多个数组的并集并集即将两个或多个数组合为一个数组的...(2)php计算两个或多个数组交集交集即是两个或多个数组中都存在的那一部分的数据...

...