java list remove的问题
2018-02-10 00:09
267 查看
以字符串去除特定字符这个例子来解释:
import java.util.*;
public class 字符串去除特定字符 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
List<Character> list = new ArrayList<>();
while (input.hasNext()) {
String str1 = input.nextLine();
String str2 = input.nextLine();
char ch = str2.charAt(0);
for (int i = 0; i < str1.length(); i++) {
list.add(str1.charAt(i));
}
// 方法1:for (int i = list.size()-1; i >=0; i--) {
// list的remove从后面,从前面要i--,从后面遍历不用考虑,因为移除一个后size-1,并不会影响到前面元素的坐标
// if (list.get(i) == ch)
// list.remove(i);
// }
for(int i=0;i<list.size();i++) {
if(list.get(i)==ch) {
list.remove(i);
i--;
//从前面遍历移除一个,i--,因为移除一个之后list容器size-1,所以后面的一个元素之前的下标是i+1就变成i了,如果不i-- //就会跳过当前移除元素后面的元素,而是下一个的下一个 l例如
//字符串abbd
//字符b
//会输出abd
//字符串abbbbd
//字符b
//会输出abbd
}
}
for (char e : list)
System.out.print(e);
System.out.println();
list.clear();
}
}
}
当然,此题这个例子使用replaceAll(ch,"")后者StringBuffer s = new StringBuffer()更方便.
import java.util.*;
public class 字符串去除特定字符 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
List<Character> list = new ArrayList<>();
while (input.hasNext()) {
String str1 = input.nextLine();
String str2 = input.nextLine();
char ch = str2.charAt(0);
for (int i = 0; i < str1.length(); i++) {
list.add(str1.charAt(i));
}
// 方法1:for (int i = list.size()-1; i >=0; i--) {
// list的remove从后面,从前面要i--,从后面遍历不用考虑,因为移除一个后size-1,并不会影响到前面元素的坐标
// if (list.get(i) == ch)
// list.remove(i);
// }
for(int i=0;i<list.size();i++) {
if(list.get(i)==ch) {
list.remove(i);
i--;
//从前面遍历移除一个,i--,因为移除一个之后list容器size-1,所以后面的一个元素之前的下标是i+1就变成i了,如果不i-- //就会跳过当前移除元素后面的元素,而是下一个的下一个 l例如
//字符串abbd
//字符b
//会输出abd
//字符串abbbbd
//字符b
//会输出abbd
}
}
for (char e : list)
System.out.print(e);
System.out.println();
list.clear();
}
}
}
当然,此题这个例子使用replaceAll(ch,"")后者StringBuffer s = new StringBuffer()更方便.
相关文章推荐
- Java 数组转换成List,然后执行add或remove抛异常UnsupportedOperationException问题的解决
- java List remove 时的小问题
- java list remove的问题
- java中使用list.remove需要注意的问题
- Java List Copy,Remove容易出现的问题
- java-list-remove()用法浅析 解决java list remove() 数据不对的问题
- java List remove 时的小问题
- Java 数组转换成List,然后执行add或remove抛异常UnsupportedOperationException问题的解决
- java.util.Arrays.asList 的小问题
- java.util.Arrays.asList 的小问题
- 在Java中实现.net中DataTable功能以及操作双数据库的List连接问题解决方案探究
- Java中List中remove的实质
- [转]在Java中实现.net中DataTable功能以及操作双数据库的List连接问题解决方案探究
- java在使用实现了List接口时候应该注意的问题
- java.util.Arrays.asList 的小问题
- list执行remove和add方法时,报java.util.ConcurrentModificationException的原因
- java在使用实现了List接口时候应该注意的问题
- java.util.Arrays.asList 的小问题
- Flex中DataGrid通过存储在List中的JAVABEAN提供数据时候,数据不能正常显示的问题
- Java:List的remove解析