0
둘 다 JSON을 단일 객체 목록으로 반환하는 두 개의 API 결과를 병합하려고합니다.두 개의 Json 결과 간의 조인을 향상시키는 방법은 무엇입니까?
현재 기본적으로 두 개의 for 루프를 반복하여 각 목록의 항목을 일치시킵니다. 이 작업을 수행하는보다 효율적인 방법이 있습니까? 이 과정은 현재 너무 오래 취하고 있습니다.
private List<SingularEntry> combineAdsAndCreatives(JsonNode creativeEntries, JsonNode adEntries)
{
List<SingularEntry> entries = new ArrayList<SingularEntry>();
for (JsonNode node : adEntries) {
node = adHashToNode(node, creativeEntries);
if(node != null)
{
entries.add(convertNode(node));
}
}
return entries;
}
private JsonNode adHashToNode(JsonNode node, JsonNode creativeEntries)
{
for(JsonNode creativeNode : creativeEntries)
{
if(node.get("campaign_network_id").toString().equals(creativeNode.get("campaign_network_id").toString()) && node.get("ad_network").toString().equals(creativeNode.get("ad_network").toString()))
{
ObjectNode newNode = (ObjectNode) node;
newNode.put("image_hash", creativeNode.get("image_hash"));
newNode.put("creative_name", creativeNode.get("creative_name"));
return newNode;
}
}
return null;
}
차이점은 무엇입니까? 두 목록을 두 번 반복해도 여전히 반복됩니다. – Bob
아니요, 각 목록에 대해 한 번 루프합니다. 게시 된 코드가 N * M을 반복합니다. 첫 번째 목록의 각 항목에 대해 두 번째 목록을 반복합니다. – StanislavL
"두 목록을 모두 거친다"는 의미를 보여줄 수 있습니까? (JsonNode 노드 : creativeEntries)에 대한 – Bob