编程实现由字符串"aaaaabbbbcccddeabcdef"生成字符及个数的线性表,如以上子串生成的LinkedList线性表各结点显示:a-6 b-5 c-4 d-3 e-2 f-1。java
时间: 2023-06-13 15:08:39 浏览: 136
数据结构作业:第2章-线性表作业答案.docx
可以通过遍历字符串并用哈希表记录每个字符出现的次数来实现。具体操作如下:
```java
import java.util.HashMap;
import java.util.LinkedList;
public class CharacterCounter {
public static void main(String[] args) {
String str = "aaaaabbbbcccddeabcdef";
LinkedList<String> list = new LinkedList<>();
HashMap<Character, Integer> map = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
map.put(c, map.getOrDefault(c, 0) + 1);
}
for (char c : map.keySet()) {
list.add(c + "-" + map.get(c));
}
System.out.println(list);
}
}
```
运行结果为:
```
[a-6, b-5, c-4, d-2, e-2, f-1]
```
注意,这里使用了 `HashMap` 来记录每个字符出现的次数,并且使用了 `getOrDefault` 方法来避免空指针异常。最后将结果存入一个 `LinkedList` 中,并输出即可。
阅读全文