public static void main( String args[]) {
// System.out.println(findAnagrams("cbaebabacd", "abc"));
ArrayList<Character> list = new ArrayList<>();
list.add('a');
list.add('b');
list.add('c');
list.remove('c');
System.out.println(list);
}
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 99 out of bounds for length 3
remove参数是表示索引,不是某个值
程序把 'c'看出ASCII码 99,认为你要删除第99个元素,所以下标越界报错了
需要先在list中循环搜索'c'字符,然后找到对应下标后remove该下标
可以通过字符删的,不过你这里比较特殊,编译过后认为‘c’是数字(大多数情况下都会这么认为),所以就remove99去了,如果是String类型就不会出现这个情况。试了下用包装类型的就可以删除了,可能因为是对象所以不会优化成ascii码。
List<Character> list = new ArrayList<>();
list.add('a');
list.add('b');
Character c = new Character('b');
list.remove(c);
System.out.println(list);