如何从数组或列表中删除两个连续的元素?
我有一个数组:
new String[]{"FIRST", "SECOND", "SECOND", "THIRD", "FOURTH", "FIRST", "FOURTH"})
我应该从此数组中删除两个连续的元素。
要删除的元素:“ FIRST”,“ SECOND”
删除元素后,新数组或列表应如下所示:
new String[]{"SECOND", "FIRST", "FOURTH", "FIRST", "FOURTH"})
现在我得到:“第二”,“第一”
结果: new String[]{"FOURTH", "FIRST", "FOURTH"})
这是我的代码:
String[] s1 = new String[arr.length];
String n = "FIRST";
String s = "SECOND";
String w = "THIRD";
String e = "FOURTH";
//I found two successive elements, and element next to them
//My question is, how can I remove these element from list,
or copy array without these elements to a new array?
for (int i = 0; i <arr.length ; i++) {
if (arr[i].equals(n) && arr[i + 1].equals(s)){
System.out.println(arr[i + 2]);
}
}
如何从数组或列表中删除两个连续的元素?
public static void main(String[] args) {
String[] arr = new String[]{"FIRST", "SECOND", "SECOND", "THIRD", "FOURTH", "FIRST", "FOURTH"};
String[] toRemove = new String[]{"FIRST","SECOND"};
arr=removeSuccessive(arr,toRemove);
System.out.println(Arrays.toString(arr));
}
private static String[] removeSuccessive(String[] arr, String[] toRemove) {
ArrayList<String> res=new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
if(!arr[i].equals(toRemove[0]))
res.add(arr[i]);
else if(i+1<arr.length && !arr[i+1].equals(toRemove[1]))
res.add(arr[i]);
else
i++;
}
return res.toArray(new String[res.size()]);
}
您可以在此处检查并运行此代码:https : //ideone.com/v6nPRf
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句