Java ArrayList删除连续abc与统计字符出现次数

需积分: 0 0 下载量 81 浏览量 更新于2024-06-30 收藏 105KB DOCX 举报
在Java编程中,集合综合题通常涉及对不同数据结构和算法的应用。这里提供了两个相关的练习题目。 首先,我们来看第一个问题,要求从一个ArrayList中删除所有值为"abc"的字符串元素。在Java中,`ArrayList` 是一种动态数组,用于存储和操作一组对象。在这个示例中,我们创建了一个`ArrayList<String>` `list`,然后添加了几个包含"abc"的字符串。为了删除特定元素,代码使用了两种遍历方式: 1. **倒着遍历(避免遗漏)**:通过从`list`的末尾开始,逐个检查元素是否等于"abc",若找到就调用`remove()`方法。这种方法可以确保即使有连续的"abc",也能一次性删除干净,因为每次删除后角标会递减。 2. **正向遍历(处理复杂情况)**:常规的正向遍历过程中,每遇到"abc"就调用`remove(j)`,并在此情况下手动调整角标`j`减一,以防遗漏。这样可以避免删除不净的问题,但需要注意处理连续"abc"时可能出现的特殊情况。 第二个问题涉及到统计一个字符串中每个字符出现的次数,并以指定格式输出。这需要用到`Set`和`TreeMap`数据结构。`Set`是一个不允许重复元素的集合,而`TreeMap`则提供了排序功能,键(字符)作为键,值(出现次数)作为值。代码首先导入了这两个类,然后定义了一个`TreeMap<Character, Integer>`来存储字符及其出现次数。遍历输入字符串,对于每个字符,检查`TreeMap`中是否存在该字符,如果不存在则添加(初始值为1),已存在则累加计数。最后,遍历`TreeMap`并格式化输出,例如:"a(2)b(1)k(2)..."。 总结起来,这段代码演示了Java中集合操作的实用技巧,包括如何使用`ArrayList`进行条件删除,以及如何利用`Set`和`TreeMap`进行字符计数。这些基础概念在实际开发中非常常见,对提升编程能力很有帮助。