//一个含有字符串的数组,例如: ["a","b","a","c","b","d","a"],需要得到一个新数组["a1", "b1", "a2", "c", "b2", "d", "a3"] //要求: 未重复的元素不处理 重复的元素加上编号 不能影响正常数组的顺序
时间: 2023-12-21 17:31:28 浏览: 86
以下是根据你提供的要求编写的Java代码,用于将给定的字符串数组转换为新数组:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
String[] array = {"a", "b", "a", "c", "b", "d", "a"};
Map<String, Integer> countMap = new HashMap<>();
List<String> result = new ArrayList<>();
for (String str : array) {
if (countMap.containsKey(str)) {
int count = countMap.get(str);
countMap.put(str, count + 1);
result.add(str + count);
} else {
countMap.put(str, 1);
result.add(str);
}
}
System.out.println(result);
}
}
```
这段代码使用了一个HashMap来保存每个字符串元素的出现次数。然后,遍历给定的字符串数组,对于每个字符串,如果它已经在HashMap中存在,就将它的出现次数加1,并将带有编号的字符串添加到结果列表中;如果它在HashMap中不存在,就将它的出现次数设为1,并将原始字符串添加到结果列表中。
最后,打印出结果列表,即得到了符合要求的新数组。
阅读全文