java merge

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java merge相关的知识,希望对你有一定的参考价值。

参考技术A java merge是什么,让我们一起了解一下?

merge是实现将两个Dataframe根据一些共有的列连接起来,其操作非常类似sql里面的join,在实际场景中,这些共有列一般是Id,连接方式也丰富多样,可以选择inner(默认),left,right,outer这几种模式,分别对应的是内连接,左连接,右连接。

那么merge是如何使用的?

举例说明:有一个表T,有两个字段a、b,我们想在表T中做Insert/Update,如果条件满足,则更新T中b的值,否则在T中插入一条记录。在Microsoft的SQL语法中,很简单的一句判断就可以了,SQL Server中的语法如下:  
if exists(select 1 from T where T.a='1001' ) update T set T.b=2 Where T.a='1001' else insert into T(a,b) values('1001',2);

但是很明显这个语法对于SQL只能更改一条语句,并且Oracle不能使用,所以就有了Merge into(Oracle 9i引入的功能)语法 。
merge into 目标表 a   using 源表 b   on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……)     when matched then update set a.字段=b.字段 --目标表别称a和源表别称b都不要省略   when  not matched then insert (a.字段1,a.字段2……)values(b.字段1,b.字段2……)
在一个同时存在Insert和Update语法的Merge语句中,总共Insert/Update的记录数,就是Using语句中"源表"的记录数。

java 88. Merge Sorted Array(#Two Pointers).java

class Solution(object):
    def merge(self, nums1, m, nums2, n):
        """
        :type nums1: List[int]
        :type m: int
        :type nums2: List[int]
        :type n: int
        :rtype: void Do not return anything, modify nums1 in-place instead.
        """
        
        while m > 0 and n > 0:
            if nums1[m-1] >= nums2[n-1]:
                nums1[m+n-1] = nums1[m-1]
                m -= 1
            else:
                nums1[m+n-1] = nums2[n-1]
                n -= 1
        if n > 0:
            nums1[:n] = nums2[:n]
public class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        
        int i = m - 1, j = n - 1, k = m + n - 1;
        
        while(i > -1 && j > -1) nums1[k--] = (nums1[i] > nums2[j]) ? nums1[i--] : nums2[j--];
        while(j > -1) nums1[k--] = nums2[j--];
        
    }
}

以上是关于java merge的主要内容,如果未能解决你的问题,请参考以下文章

RxJava系列5(组合操作符)

SQLServer2008中的Merge

Git使用详解Egit的常用操作详解

git IDEA的分支合并,merge和rebase的区别

git IDEA的分支合并,merge和rebase的区别

git IDEA的分支合并,merge和rebase的区别