jinceon 2011-05-04 22:26
浏览 185
已采纳

求相同的值

现在有4个数或字母啊或什么你喜欢的东西,输出重复的值的编号(或其他能确定身份的东西)。
比如int ddd[]={1,2,3,4};因为没有重复的值,返回null或其他你想返回的。
{2,2,3,3}返回0,1,2,3(数组下标,或其他你喜欢用的东西)
{2,1,2,3)返回0,2
{2,2,2,2}返回0,1,2,3

{2,2,2,3}返回0,1,2

数是乱序的;可能有0,1,2,3,4个相同的数。

  • 写回答

1条回答 默认 最新

  • q_wong 2011-05-05 10:04
    关注

    [code="java"]/**
    *
    * @param sourceList 基准数组
    * @param targetList 要比较的数组
    * @return 重复的index列表
    */
    private List getRepeat(List sourceList,
    List targetList) {
    List indexList = new ArrayList();
    for (int i = 0; i < targetList.size(); i++) {
    if (sourceList.contains(targetList.get(i))) {
    indexList.add(i);
    }
    }
    return indexList;
    }

    /**
     * 
     * @param indexList 重复的index列表
     */
    private void printIndex(List<Integer> indexList) {
        if (null == indexList || indexList.size() == 0) {
            System.out.println("null");
            return;
        }
        for (Integer i : indexList) {
            System.out.print(i + "、");
        }
    }
    
    @Test
    public void test() {
        List<String> sourceList = Arrays.asList("1", "2", "3", "4");
        List<String> targetList1 = Arrays.asList("2", "2", "3", "3");
        List<String> targetList2 = Arrays.asList("2", "2", "2", "2");
        List<String> targetList3 = Arrays.asList("5", "5", "5", "5");
        printIndex(getRepeat(sourceList, targetList1));
        printIndex(getRepeat(sourceList, targetList2));
        printIndex(getRepeat(sourceList, targetList3));
    
    }[/code]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?