在我的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.
有人可以提出任何想法来实现这种逻辑吗?
答案 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}}}$");