【发布时间】:2020-04-11 17:29:54
【问题描述】:
首先抱歉,如果标题没有真正解释问题应该是什么。
我的 android (java) 代码中有 2 个 ArrayList
例如,假设第一个由字符串组成,第二个由整数组成。
ArrayLis<String> strings = new ArrayList<String>();
strings.add("s1");
strings.add("s2");
strings.add("s1");
strings.add("s3");
strings.add("s4");
strings.add("s1");
strings.add("s2");
ArrayList<Integer> ints = new ArrayList<Integer>();
ints.add(1);
ints.add(2);
ints.add(5);
ints.add(3);
ints.add(4);
ints.add(3);
ints.add(2);
以这个例子为例,假设数组列表字符串中的每个值对应一个数组 int 的值,但 int 值可能会改变
我想去除字符串数组中的重复,我使用了LinkedHashSet来做到这一点:
LinkedHashSet<String>hashset = new LinkedHashSet<>(strings);
strings = new ArrayList<> hashset;
现在的问题是我删除了重复的字符串条目,但我也删除了每个字符串与其 int 值之间的链接。
如何使用字符串的最小 int 值获取新的“ints”数组,例如对于 s1,它具有 1、5 和 3 作为绑定值得到 1 值:
strings = ["s1", "s2", "s3", "s4"];
ints = [1, 2, ,3, 4];
我想过使用地图。但这是最好的方法吗? (将字符串映射到 int 并且每当发生重复时检查 int 是否较小并替换映射值)
【问题讨论】: