groovy 两个list string 一个代码用户code 另一个代表订单code 平均分配
下面是使用Groovy语言实现平均分配的示例代码:
def assignOrdersToUsers(List<String> userCodes, List<String> orderCodes) {
def assignedOrders = [:]
int numUsers = userCodes.size()
int numOrders = orderCodes.size()
int ordersPerUser = numOrders / numUsers
int extraOrders = numOrders % numUsers
for (int i = 0; i < numUsers; i++) {
int startIndex = i * ordersPerUser + Math.min(i, extraOrders)
int endIndex = startIndex + ordersPerUser + (i < extraOrders ? 1 : 0)
List<String> assignedOrderCodes = orderCodes.subList(startIndex, endIndex)
assignedOrders[userCodes[i]] = assignedOrderCodes
}
return assignedOrders
}
// 示例用法
def userCodes = ["user1", "user2", "user3"]
def orderCodes = ["order1", "order2", "order3", "order4", "order5", "order6"]
def assignedOrders = assignOrdersToUsers(userCodes, orderCodes)
assignedOrders.each { user, orders ->
println("User: $user, Orders: $orders")
}
输出结果将是:
User: user1, Orders: [order1, order2]
User: user2, Orders: [order3, order4]
User: user3, Orders: [order5, order6]
这个示例代码将订单平均分配给用户,并将结果存储在一个Map中,其中键是用户代码,值是分配给该用户的订单代码列表。如果订单不能均匀分配,则额外的订单将按顺序依次分配给用户
原文地址: http://www.cveoy.top/t/topic/imJt 著作权归作者所有。请勿转载和采集!