首页 > 解决方案 > 如果我从第一个 ArrayList 中删除了一个值,如何在两个 ArrayList 上获得相同的位置

问题描述

我有两个 ArrayList

ArrayList<String> firstList = new ArrayList<>(Arrays.asList("king", "king", "queen", "jack", "queen"));

ArrayList<String> secondList = new ArrayList<>(Arrays.asList("one", "one", "one", "two", "one"));

在名为的列表firstList中,我将使用删除重复项Set<String> hashSet = new HashSet<>(firstList);,输出将是"king", "queen", "jack"

我想要做的是获得secondList等于的位置firstList

当前输出为(king & one), (queen, one), (jack, one)

我想要的输出是(king, one), (queen, one), (jack, two)

如果你们中的任何人可以帮助我,我将不胜感激。

标签: javaarraylist

解决方案


假设您的两个输入列表的长度始终相同,您可以执行以下简单操作:

public static void main(String[] args) {
    List<String> firstList  = new ArrayList<>(Arrays.asList("king", "king", "queen", "jack", "queen"));
    List<String> secondList = new ArrayList<>(Arrays.asList("one", "one", "one", "two", "one"));

    List<String> cards = new ArrayList<>();
    List<String> positions = new ArrayList<>();
    for(int i = 0; i< firstList.size(); i++){
        String temp = firstList.get(i);
        if(!cards.contains(temp)){
            cards.add(temp); 
            positions.add(secondList.get(i)); 
        }
    }
    System.out.println(cards);
    System.out.println(positions);
}

推荐阅读