将项目从一个列表添加到java中的另一个列表

时间:2015-09-24 15:08:27

标签: java android arraylist

我有两个arraylists说

grep -Pv '^((?!THAT).)*THIS((?!THAT).)*$' file

我正在做的是我通过第三个列表(称为MyItems)进行迭代,并在其中添加名为highlight和normal的项目,如上所述。

ArrayList<BaseItem> normal;
ArrayList<BaseItem> highlighted;

normal = new ArrayList<BaseItem>();
highlighted = new ArrayList<BaseItem>();

所以我的问题是我想将高位列表中的每个第5和第6项添加到名为普通.i.e元素的列表中,如5,6,11,12,17,18等等

我还希望将正常列表中的每个第6和第7项添加到突出显示的列表中,即6,7,13,14等等。

所以现在我的突出显示和普通列表将包含像这样的项目

  for (Iterator<BaseItem> iterator = MyItems.iterator(); iterator.hasNext();) {
        BaseItem itemtype = iterator.next();
        if (itemtype.isHighlight()) {
            highlighted.add(itemtype);

        }
        else{
            normal.add(itemtype);

        }

    } 

任何帮助总是受到赞赏,

由于

1 个答案:

答案 0 :(得分:1)

如果我理解,在列表中插入5和6之后使用计数器,添加正常列表而不是突出显示的列表

试试这个:

int highAdded = 0;
int normalAdded = 0;
for (Iterator<BaseItem> iterator = MyItems.iterator(); iterator.hasNext();) {
    BaseItem itemtype = iterator.next();
    if (itemtype.isHighlight()) {
        highAdded++;
        if (highAdded == 5) {
            normal.add(itemtype);
        } else if (highAdded == 6) {
            normal.add(itemtype);
            highAdded = 0;
        } else {
           highlighted.add(itemtype);
        }
    }
    else{
        normalAdded++;
        if (normalAdded == 6) {
            highlighted.add(itemtype);
        } else if (normalAdded == 7) {
            highlighted.add(itemtype);
            normalAdded = 0;
        } else {
           normal.add(itemtype);
        }
    }

} 

修改

我写这段代码:

public class StackOverFlowSample {
    public static void main(String [] args) {

        List<String> lst = new ArrayList<String>();

        List<String> lstHigh = new ArrayList<String>();
        List<String> lstNormal = new ArrayList<String>();

        lst.add("highlighted01");
        lst.add("highlighted02");
        lst.add("highlighted03");
        lst.add("highlighted04");
        lst.add("highlighted05");
        lst.add("highlighted06");
        lst.add("highlighted07");
        lst.add("highlighted08");
        lst.add("highlighted09");
        lst.add("highlighted10");
        lst.add("highlighted11");
        lst.add("highlighted12");
        lst.add("highlighted13");
        lst.add("highlighted14");
        lst.add("highlighted15");
        lst.add("highlighted16");

        lst.add("normal01");
        lst.add("normal02");
        lst.add("normal03");
        lst.add("normal04");
        lst.add("normal05");
        lst.add("normal06");
        lst.add("normal07");
        lst.add("normal08");
        lst.add("normal09");
        lst.add("normal10");
        lst.add("normal11");
        lst.add("normal12");
        lst.add("normal13");
        lst.add("normal14");
        lst.add("normal15");
        lst.add("normal16");

        int highAdded = 0;
        int normalAdded = 0;
        for (Iterator<String> iterator = lst.iterator(); iterator.hasNext();) {
            String itemtype = iterator.next();
            if (itemtype.startsWith("highlighted")) {
                highAdded++;
                if (highAdded == 5) {
                    lstNormal.add(itemtype);
                } else if (highAdded == 6) {
                    lstNormal.add(itemtype);
                    highAdded = 0;
                } else {
                   lstHigh.add(itemtype);
                }
            }
            else{
                normalAdded++;
                if (normalAdded == 6) {
                    lstHigh.add(itemtype);
                } else if (normalAdded == 7) {
                    lstHigh.add(itemtype);
                    normalAdded = 0;
                } else {
                   lstNormal.add(itemtype);
                }
            }
        } 

        String result = "HIGHLIGHTED ARRAY: ";
        for (String curr : lstHigh) {
            result += curr + ", ";
        }
        System.out.print(result);

        result = "NORMAL ARRAY: ";
        for (String curr : lstNormal) {
            result += curr + ", ";
        }
        System.out.print(result);
    }
}

输出结果为:

HIGHLIGHTED ARRAY: highlighted01, highlighted02, highlighted03, highlighted04, highlighted07, highlighted08, highlighted09, highlighted10, highlighted13, highlighted14, highlighted15, highlighted16, normal06, normal07, normal13, normal14,

NORMAL ARRAY: highlighted05, highlighted06, highlighted11, highlighted12, normal01, normal02, normal03, normal04, normal05, normal08, normal09, normal10, normal11, normal12, normal15, normal16, 

告诉我它是否正常;)