返回包含两个数组之间共享的元素的int[]
/* Copyright (c) 2001-2010, The HSQL Development Group * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * Neither the name of the HSQL Development Group nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG, * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *///时 代 J a v a - nowjava.com 提 供 //package com.nowjava; public class Main { public static void main(String[] argv) throws Exception { int[] arra = new int[] { 34, 35, 36, 37, 37, 37, 67, 68, 69 }; int[] arrb = new int[] { 34, 35, 36, 37, 37, 37, 67, 68, 69 }; System.out.println(java.util.Arrays.toString(commonElements(arra, arrb))); } /** * Returns an int[] containing elements shared between the two arrays * arra and arrb. The arrays contain sets (no value is repeated). * * Used to find the overlap between two arrays of column indexes. * Ordering of the result arrays will be the same as in array * a. The method assumes that each index is only listed * once in the two input arrays. * <p> * e.g. * </p> * <code> * <table width="90%" bgcolor="lightblue"> * <tr><td colspane="3">The arrays</td></tr> * <tr><td>int []arra</td><td>=</td><td>{2,11,5,8}</td></tr> * <tr><td>int []arrb</td><td>=</td><td>{20,8,10,11,28,12}</td></tr> * <tr><td colspane="3">will result in:</td></tr> * <tr><td>int []arrc</td><td>=</td><td>{11,8}</td></tr> * </table> * * @param arra int[]; first column indexes * @param arrb int[]; second column indexes * @return int[] common indexes or <code>null</code> if there is no overlap. */ public static int[] commonElements(int[] arra, int[] arrb) { int[] c = null; int n = countCommonElements(arra, arrb); //来自 nowjava - 时 代 Java if (n > 0) { c = new int[n]; int k = 0; for (int i = 0; i < arra.length; i++) { for (int j = 0; j < arrb.length; j++) { if (arra[i] == arrb[j]) { c[k++] = arra[i]; } } } } return c; }