Java列表以创建大小有限的辅助列表

时间:2018-11-19 06:00:23

标签: java spring collections logic

在我的Spring / java项目中,我想广播受限频道的呼叫。假设在这里500 contact numbers and 10 Gateway Channels。在这里,我想按10个联系人呼叫10个联系人,并将其存储在a secondary Collection(列表/队列)中,如果在给定时间之间有任何通话切入,则11个联系人来了,次要Collection再次变为10。通话完成。 例如:

List<T> a=(500 contacts);
List<T> b=(10 contacts calls at a time);
if any of calls cut in shortly 11th contact comes in List<T> b in it`s size become 10 again.

有人可以提出任何想法来实现这种逻辑吗?

2 个答案:

答案 0 :(得分:1)

您可以具有类似于以下的逻辑,保持大小为10的ArrayList,如果呼叫完成或呼叫中断,请在递增联系数组中的索引之间并将该联系分配给中断/完成的当前呼叫索引。 / p>

ArrayList<Contact> callList = new ArrayList<Contact>(10);
int contactIndex = 10; 
ArrayList<Contact> storedContacts = new ArrayList<Contact>(500);
// initialize contacts
while(contactIndex<500) {
    for(int i=0;i<10;i++) {
        Contact contact = callList.get(i);
        if(contact.isCallComplete() || contact.cutInBetween()) {
           callList.set(i,storedContacts.get(contactIndex)); 
           contactIndex++;
        }
        // remaining logic
    }
}

答案 1 :(得分:1)

最好将Queue数据结构维护为辅助集合。希望以下代码对您有所帮助。

  using System.Text.RegularExpressions;

  ...

  bool isValidPin = Regex.IsMatch(pin, $"^[0-9]{{{size}}}$");