Parfois, dans l'interface de nos applications VLSI , il devient nécessaire de «grouper» certaines des entrées dans une certaine liste (par exemple, les messages de service dans le chat, les contacts et les appels téléphoniques).
C'est bien si tous ces enregistrements proviennent d'une seule source, mais s'ils proviennent de différents services, et avec la navigation par curseur , l'algorithme d'implémentation devient très non trivial.
Je ne donnerai volontairement pas l'implémentation "en code" ici, mais je décrirai une approche exclusivement algorithmique de la solution, afin que, si nécessaire, vous puissiez l'adapter vous-même à vos tâches. Donc...
Formulation du problème
Nous avons deux services. Cela pourrait être plus, mais en suivant l'image précédente, laissez, par souci de clarté, être des services d'appels et de contacts .
Merci aux collègues du CRM pour une tâche intéressante. En attendant, il n'y a pas lieu de s'inquiéter à ce sujet. »
, "" .
"" - , - , .
, , , , :
#1: " "
, -, - , . - .
" " , . "", ?
#2: " "
, ?.. (20 ) , "" , - .
, ( ) "" - ? , .
, ( ), . , "".
#1: " "
, , - - ( 20), - .
, - (merge ordered) (limit) "" .
, , "" 15 20 . 5 , " " - .
#3: "One Ring to rule them all"
? , - , . - , .
, " - , " - , .
#4: " server-side"
- , . , , .
stateless server-side , , - . , :
---
, ""
--
#2: " client-side"
, -, ?.. .
, " " (, , localStorage), .
- :
20 20
"" 5
5 "" + 15
5
20 - ? ! ( 20, "" )
" ", 25 20
Edge Cases
, - "" " ", "" .
, , : ", , , , !"