/**
* 1.给定数组int[] a,int[] b
* (1)请找出数组a所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},结果int[] a1 = {1,1,3,3,3}
* (2)比较数组a和数组b得到不重复的新数组,例:int[] a = {1,2,3,4,8,9,3,5,1,3},int[] b = {2,7,6,0,5},结果int[] c = {1,2,3,4,5,6,7,8,9,0}
* (3)比较数组a和数组b请找出所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},int[] b = {2,7,6,0,5},结果int[] e = {1,1,2,2,3,3,3,5,5}
*
*/
@Test
public void suanfa42()
{ int[] a = {1,2,3,4,8,9,3,5,1,3};
int[] b = {2,7,6,0,5};
// {1,3,7,6,0} //(1)请找出数组a所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},结果int[] a1 = {1,1,3,3,3}
int[] a1 = this.getMethod1(a);
System.out.println("a1 = " + a1); //(2)比较数组a和数组b得到不重复的新数组,例:int[] a = {1,2,3,4,8,9,3,5,1,3},int[] b = {2,7,6,0,5},结果int[] c = {1,2,3,4,5,6,7,8,9,0}
int[] c = Stream.of(Arrays.stream(a).boxed(), Arrays.stream(b).boxed()).flatMap(item -> item).distinct()
.mapToInt(Integer::valueOf).toArray();
System.out.println("c = " + c); // (3)比较数组a和数组b请找出所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},int[] b = {2,7,6,0,5},结果int[] e = {1,1,2,2,3,3,3,5,5}
int[] e = this.getMethod3(a, b);
System.out.println("e = " + e);
System.out.println("e = " + e.toString()); } /**
* (1)请找出数组a所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},结果int[] a1 = {1,1,3,3,3}
*
* @param a
* @return
*/
private int[] getMethod1(int[] a)
{
int[] a1 = new int[a.length];
int index = 0;
HashMap<Integer, Integer> countMap = new HashMap<>();
for (int i : a)
{
if (countMap.containsKey(i))
{
Integer count = countMap.get(i);
if (count == 1)
{
a1[index++] = i;
}
a1[index++] = i;
countMap.put(i, count + 1);
}
else
{
countMap.put(i, 1);
}
}
return a1;
} /**
* (3)比较数组a和数组b请找出所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},int[] b = {2,7,6,0,5},结果int[] e = {1,1,2,2,3,3,3,5,5}
*
* @param a
* @param b
* @return
*/
private int[] getMethod3(int[] a, int[] b)
{
int[] e = new int[a.length + b.length]; // 合并两个数组并排序
List<Integer> integers = Stream.of(Arrays.stream(a).boxed(), Arrays.stream(b).boxed())
.flatMap(item -> item).sorted().collect(Collectors.toList());
HashMap<Integer, Integer> countMap = new HashMap<>();
int index = 0;
for (Integer item : integers)
{
if (countMap.containsKey(item))
{
Integer count = countMap.get(item);
if (count == 1)
{
e[index++] = item;
}
e[index++] = item;
countMap.put(item, count+1); }
else
{
countMap.put(item, 1);
}
}
return e;
}

算法:请找出数组a所有重复元素和比较数组a和数组b得到不重复的新数组和比较数组a和数组b请找出所有重复元素的更多相关文章

  1. java面试题:已知一个数组[2,4,6,2,1,5],将该数组进行排序(降序,不能用工具类进行排序),创建两条线程交替输出排序后的数组,线程名自定义

    package com.swift; import java.util.Arrays; import java.util.Comparator; public class ArrayThread_Te ...

  2. 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查。。。

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Ser ...

  3. 05. flex元素水平垂直居中(三种position水平垂直居中和两种新老版本水平垂直居中)

    flex元素水平垂直居中(三种position水平垂直居中和两种新老版本水平垂直居中) (1).position : <!DOCTYPE html> <html lang=" ...

  4. 估计人数【最小路径重复点覆盖】【直接在(i,j)建一个新点】

    估计人数 题意 思路 用最少的人,走完这几条线.最小重复路径点覆盖问题 建图之后,跑一下二分图. 考虑建图:图中'1'连着完下.或者右走.我们把图中所有的1编号,然后建图,然后floly,然后匈牙利. ...

  5. 对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。 给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。

    /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x ...

  6. 分布式系统的Raft算法——在失联阶段这个老Leader的任何更新都不能算commit,都回滚,接受新的Leader的新的更新 意味着还是可能丢数据!!!

    过去, Paxos一直是分布式协议的标准,但是Paxos难于理解,更难以实现,Google的分布式锁系统Chubby作为Paxos实现曾经遭遇到很多坑. 来自Stanford的新的分布式协议研究称为R ...

  7. JDK5的新特性之增强for循环遍历数组或集合

    [格式] for(元素的类型 变量名 : 数组或Collection集合名){ //此处使用变量名即可,该变量就是普通for里的i. }

  8. 字符串数组 输入3个字符串,要求按由小到大的字母顺序输出; 输入n个学生的姓名和学号到字符串数组中,在输入一个姓名,如果班级有该生则返回其信息,否则返回本班无此人

    输入3个字符串,要求按由小到大的字母顺序输出 如 输入franch england china,输出结果是china england franch 三个数排序输出,比较三个数的大小怎么做? a=18 ...

  9. CSS新特性(3D转换,perspective(透视),transfrom-style(子元素是否开启三维环境))

    1. 三维坐标系(里面的值不能省略,没有就写 0 ) x 轴:水平向右    注意:x 右边是正值,左边是负值 y轴: 垂直向下    注意:y 下面是正值,上面是负值 z轴:垂直屏幕     注意: ...

  10. ElasticSearh更新nested字段(Array数组)。怎么根据查询条件(query)复制一个(index)到新的Index how to update by query a nested fields data for elasticsearch

    GET usernested/_search { "query": { "nested": { "path": "tags&quo ...

随机推荐

  1. [HEOI2014]大工程 题解

    发现可以直接建立虚树. 设 \(dp_{u,0/1/2}\) 表示第 \(u\) 个节点的子树内,所有选中节点到它的距离之和/选中节点中到它的最短距离/选中节点中到它的最长距离,\(as_{u,0/1 ...

  2. 4. MySQL 逻辑架构说明

    4. MySQL 逻辑架构说明 @ 目录 4. MySQL 逻辑架构说明 1. 逻辑架构剖析 1.1 服务器处理客户端请求 1.2 Connectors(连接器) 1.3 第1层:连接层 1.4 第2 ...

  3. 【COM3D2Mod 制作教程(7)】实战!制作衣服部分(上)

    [COM3D2Mod 制作教程(7)]实战!制作衣服部分(上) 教程介绍 隔了 N 个月终于迎来了第二期的 Mod 教程部分,这一期我们将开始制作人物的衣服部分. 因为体型适配的原因,衣服部分要比身体 ...

  4. 深入理解 Docker 容器技术

    一.引言 在当今的云计算和软件开发领域,Docker 容器技术已经成为了一项不可或缺的工具.它极大地改变了应用程序的部署和运行方式,为开发者和运维人员带来了诸多便利. 二.Docker 容器是什么? ...

  5. 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!

    引子:那个让运维集体加班的夜晚 "凡哥!线上服务响应时间飙到10秒了!"凌晨1点,实习生小李的语音带着哭腔. 监控大屏上,JVM堆内存曲线像坐了火箭--刚扩容的16G内存,30分钟 ...

  6. Linux - 安装centos7.x之后发现ping不了www.baidu.com

    1.首先检查网络配置 /etc/sysconfig/network-scripts 下的网卡配置文件是否有误 检查方向:IP.网关.子网掩码.DNS.ONBOOT参数 2.检查防火墙是否关闭 # 查看 ...

  7. postman 如何比较两台电脑的脚本是否一样

  8. 网络虚拟存储 Iscsi实现方案

    网络虚拟存储,通过Iscsi协议可以实现本地挂载磁盘,扩展本机设备存储. Iscsi有以下实现方案,简单介绍下: 1.Powershell 脚本 PowerShell 提供了一些 cmdlet,比如  ...

  9. HarmonyOS应用开发者高级认证【考题+答案】

    HarmonyOS应用开发者高级认证 前言 考试简介 掌握鸿蒙的核心概念和端云一体化开发.数据.网络.媒体.并发.分布式.多设备协同等关键技术能力,具备独立设计和开发鸿蒙应用能力. 博文说明 本博文的 ...

  10. 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器

    需求背景 阿里云服务器到期了,正好家里有闲置的电脑,还有公网IP,打算装个linux服务器使用.本文章主要重点是实现远程连接虚拟机内服务器,打通网络连接,更多玩法大家可以自行探索. ps: 公网IP自 ...