J'ai besoin de créer un cache Java qui contient toutes les villes et tous les aéroports. Donc, si je demande le cache pour un emplacement, disons une ville, il devrait retourner tous les aéroports de cette ville et si je demande un emplacement qui est un aéroport, je devrais revenir cet aéroport. En outre, chaque emplacement doit être stockée en tant que tableau d'octets dans la mémoire cache (comme l'interface exposée pour l'interrogation de la mémoire cache a byte [] en tant que paramètre pour la localisation) D'autres considérations sont les suivantes:.Comment implémenter un cache avec une matrice binaire en tant que matrice de clés et binaire en tant que valeurs en Java
- La récupération doit être très rapide, aussi vite que possible
- Le cache est chargé une seule fois au démarrage du système. Il ne change pas après avoir reçu chargé.
- Comme il est chargé une seule fois, nous pouvons le garder trié si cela accélère la récupération.
Ce que j'ai jusqu'à présent:
Approche 1
Créer une enveloppe mince sur octet tableau [], permet de dire ByteWrapper. Placez chaque emplacement (les deux aéroports et les villes) comme une clé dans la carte (TreeMap?). Utilisez les listes de ByteWrapper (contenant les aéroports où cela s'applique) comme valeurs.
Approche 2
Créer octet tableau multidimensionnel [] qui est triée sur place. C'est essentiellement une carte. Ensuite, utilisez la recherche binaire pour localiser la clé et renvoyer les résultats.
Quelle approche suggérez-vous? S'il vous plaît laissez-moi savoir dans le cas où vous avez de meilleures idées Merci
Faites-moi plaisir: Pourquoi le frig utilisez-vous des 'byte []' s pour représenter les villes et les aéroports? – gustafc
:) Hmm. Nous avons un autre cache qui utilise octets [] (aéroports codés) comme une clé pour d'autres informations sur les aéroports. Cela a été fait pour économiser de l'espace et un accès plus rapide. Le problème avec ce cache est qu'il est basé sur les aéroports. Nous voulons soutenir les villes maintenant. Cependant, nous ne voulons pas créer un niveau de plus (City-> airport-> other info-> more info) dans ce cache car il a déjà 3-4 niveaux. Donc, nous créons ce nouveau cache qui sera utilisé pour obtenir des aéroports pour une ville/un aéroport donné et utiliser les résultats pour interroger le cache basé sur l'aéroport existant. Hmm, suis-je trop vague? :) –
hmm aucune réponse de quelqu'un? Je travaille sur la sulfuration. vous permettra de connaître les résultats tomm. S'il vous plaît suggérer de meilleures idées si vous en avez. –