查找两个字符串数组之间的公共元素(甚至重复)

时间:2019-04-22 23:58:59

标签: java discord

好吧,所以我要制造一个不和谐的机器人,我傻了。
因此,如果游戏的解决方案是:[“:star:”,“:star:”,“:star:”,“:star:”]
然后输入[“:star:”,“:clubs:”,“:star:”,“:star:”]

我需要通用的字符串数组为:[“:star:”,“:star:”,“:star:”]

这是我尝试过的:

  private List<String> findCommonElement(String[] a, String[] b) {

        List<String> commonElements = new ArrayList<>();

        for (String s1 : a) {
            for (String s2 : b) {
                if (s1.equals(s2)) {
                    commonElements.add(s1);
                    break;
                }
            }
        }
        return commonElements;
    }

我意识到它可以与其他数组位置一起检查每个元素的位置,但是我不知道。使其不嵌套吗?

2 个答案:

答案 0 :(得分:2)

使用Set,它将防止添加重复的值

mystica.json

答案 1 :(得分:0)

在if条件中,设置中断之前,您可以简单地将b数组更改为另一个字符串,当再次调用嵌套的for循环时,这将导致数组b中该位置的if条件为false。

  memSys->virtMem = malloc( sizeof( int ) * sizeVM * pageSize );
  memSys->tlb = malloc( sizeof(struct TLBentry) * sizeTLB );
  memSys->pgTable = malloc( sizeof(struct pageTableEntry) * sizeVM );

  for( int i=0; i < memSys->sizeTLB; i++ ){
    struct TLBentry* entry = &(memSys->tlb[i]);
    entry->virtualAddress = i;
    entry->physicalAddress = i;
  }
  for( int i=0; i < memSys->sizeVM; i++ ){
    memSys->pgTable[i].physicalAddress = i;
    memSys->pgTable[i].validFlag = 0;
  }
  for( int i=0; i < memSys->sizePM; i++ ){
    memSys->pgTable[i].physicalAddress = i;
    memSys->pgTable[i].validFlag = 1;
  }
  printf("initialize %d\n", memSys->tlb[1].virtualAddress );