对于我无法摆脱的情况,我需要一些示例代码的帮助。我有一个简单的对象列表。我的课是这样的:
class MyClass {
String str;
Integer intgr;
}
该列表包含以下元素:
[{a1 5}, {b2 3}, {g1 1}, {b5 1}, {c9 11}, {g2 3}, {d1 4}, {b3 19}... ... ...]
我需要检查是否有任何元素在字符串中包含相同的前缀(这里后缀是最后一个字符),然后保留具有更大整数值的元素。上述示例列表的预期输出将是:
[{a1 5}, {c9 11}, {g2 3}, {d1 4}, {b3 19}... ... ...]
字符串将具有唯一值,但可以在前缀中匹配。我在java中不是那么好。那么有人可以帮我解决这个问题吗?这是我正在尝试但得到的代码IndexOutOfBoundsException
。这段代码有问题,所以需要你的帮助。
谢谢!
int size = list.size();
for (int j = 0; j < size; j++) {
if (list.get(j).str.substring(0, list.get(j).str.length()-1).compareTo(list.get(j+1).str.substring(0, list.get(j+1).str.length()-1)) == 0) {
if (list.get(j).intgr > list.get(j+1).intgr)
list.remove(list.get(j+1));
size--;
else {
list.remove(list.get(j));
j--;
size--;
}
}
}