如何从数组或列表中删除两个元素的序列? [英] How to remove sequence of two elements from array or list?

查看:66
本文介绍了如何从数组或列表中删除两个元素的序列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从数组或列表中删除两个连续的元素?

How to remove two successive elements from array or list?

我有一个数组:

new String[]{"FIRST", "SECOND", "SECOND", "THIRD", "FOURTH", "FIRST", "FOURTH"});

我应该从此数组中删除两个连续的元素.

I should remove two successive elements from this array.

要删除的元素:"FIRST","SECOND"

在删除元素后,新数组或列表应如下所示:

after removing elements new array or list should look like:

new String[]{"SECOND", "THIRD", "FOURTH", "FIRST", "FOURTH"});

现在我得到:"SECOND","FIRST"

结果: new String [] {第四",第一",第四"})

这是我的代码:

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]);
    }
}

如何从数组或列表中删除两个连续的元素?

How to remove two successive elements from array or list?

推荐答案

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

You can check and run this code here: https://ideone.com/v6nPRf

这篇关于如何从数组或列表中删除两个元素的序列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆