添加从一个列表中的项目在Java另一个列表 [英] Add the items from one list to another list in java

查看:202
本文介绍了添加从一个列表中的项目在Java另一个列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个的ArrayList说

I have two arraylists say

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

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

我在做什么是我通过第三list进行遍历(称为MyItems)和添加的项目在它所谓的亮点,并垂直于上述两个名单是这样的。

what I am doing is I am Iterating through a 3rd list(called MyItems) and adding the items in it called highlight and normal to the above two lists like this.

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

        }
        else{
            normal.add(itemtype);

        }

    } 

所以我的问题是我想补充的。

So my question is I want to add every 5th and 6th item of the highlited list to the list called normal .i.e elements like 5,6,11,12,17,18 and so on

和我也想正常列表的每个第六和第七项添加到列表中高亮即-6,7,13,14等。

and also I want to add every 6th and 7th item of normal list to highlighted list i.e 6,7,13,14 and so on.

所以现在我的重点和正常列表将包含类似这样的项目

so now my highlighted and normal lists will contain the items like this

 Highlighted -> highlighted1,highlighted2,highlighted3,highlighted4,normal6,normal7 highlighted7,highlighted8.highlighted9,highlighted10,normal13,normal14 and so on

 Normal ->  Noraml1,normal2,normal3,normal4,normal5,highlighted5,highlighted6,normal7,normal8,normal9,normal10,normal11,normal12,highlighted11,highlighted12 and so on

任何帮助总是AP preciated,

Any help is always appreciated,

感谢

推荐答案

如果我的理解,用一个计数器后,当您的列表5和6插入,加在正常列表,而不是强调列表

If I understand, use a counter when after 5 and 6 insert in your list, add in normal list instead of highlighted list

试试这个:

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

} 

修改

在我写这篇code:

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, 

告诉我,如果它的确定;)

Tell me if it's OK ;)

这篇关于添加从一个列表中的项目在Java另一个列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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