Maison > Java > javaDidacticiel > Bibliothèque de classes Java-Guava-Multimap

Bibliothèque de classes Java-Guava-Multimap

黄舟
Libérer: 2017-01-19 13:20:42
original
1782 Les gens l'ont consulté

Dans le travail de développement quotidien, nous devons parfois construire une structure comme Map

[code]import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;

public class MultimapTest {

    Map<String, List<StudentScore>> StudentScoreMap = new HashMap<String, List<StudentScore>>();

    @Test
    public void testStudentScore(){

        for(int i=10;i<20;i++){
            StudentScore studentScore=new StudentScore();
            studentScore.CourseId=1001+i;
            studentScore.score=100-i;
            addStudentScore("peida",studentScore);
        }

        System.out.println("StudentScoreMap:"+StudentScoreMap.size());
        System.out.println("StudentScoreMap:"+StudentScoreMap.containsKey("peida"));

        System.out.println("StudentScoreMap:"+StudentScoreMap.containsKey("jerry"));
        System.out.println("StudentScoreMap:"+StudentScoreMap.size());
        System.out.println("StudentScoreMap:"+StudentScoreMap.get("peida").size());

        List<StudentScore> StudentScoreList=StudentScoreMap.get("peida");
        if(StudentScoreList!=null&&StudentScoreList.size()>0){
            for(StudentScore stuScore:StudentScoreList){
                System.out.println("stuScore one:"+stuScore.CourseId+" score:"+stuScore.score);
            }
        }
    }

    public void addStudentScore(final String stuName,final StudentScore studentScore) {
        List<StudentScore> stuScore = StudentScoreMap.get(stuName);
        if (stuScore == null) {
            stuScore = new ArrayList<StudentScore>();
            StudentScoreMap.put(stuName, stuScore);
        }
        stuScore.add(studentScore);
    }
}

class StudentScore{
    int CourseId;
    int score;
}
Copier après la connexion


Remarque : si vous souhaitez appeler Multimap.get(key) pour Map

<🎜. >
[code] @Test
    public void teststuScoreMultimap(){
        Multimap<String,StudentScore> scoreMultimap = ArrayListMultimap.create(); 
        for(int i=10;i<20;i++){
            StudentScore studentScore=new StudentScore();
            studentScore.CourseId=1001+i;
            studentScore.score=100-i;
            scoreMultimap.put("peida",studentScore);
        }
        System.out.println("scoreMultimap:"+scoreMultimap.size());
        System.out.println("scoreMultimap:"+scoreMultimap.keys());
    }
Copier après la connexion
La vue de l'ensemble de valeurs correspondant à cette clé sera renvoyée. S'il n'y a pas d'ensemble correspondant, un ensemble vide sera renvoyé. Pour ListMultimap, cette méthode renvoie une liste et pour SetMultimap, cette méthode renvoie un ensemble. La modification des données s'effectue en modifiant la Multimap sous-jacente. Par exemple :

[code] @Test
public void teststuScoreMultimap(){
Multimap<String,StudentScore> scoreMultimap = ArrayListMultimap.create(); 
for(int i=10;i<20;i++){
StudentScore studentScore=new StudentScore();
studentScore.CourseId=1001+i;
studentScore.score=100-i;
scoreMultimap.put("peida",studentScore);
}
System.out.println("scoreMultimap:"+scoreMultimap.size());
System.out.println("scoreMultimap:"+scoreMultimap.keys());

Collection<StudentScore> studentScore = scoreMultimap.get("peida");
studentScore.clear();
StudentScore studentScoreNew=new StudentScore();
studentScoreNew.CourseId=1034;
studentScoreNew.score=67;
studentScore.add(studentScoreNew);

System.out.println("scoreMultimap:"+scoreMultimap.size());
System.out.println("scoreMultimap:"+scoreMultimap.keys());
}
Copier après la connexion
Multimap prend également en charge une série de fonctions d'affichage puissantes :


 1.asMap implémente son propre Multimap

[code]@Test
    public void teststuScoreMultimap(){
        Multimap<String,StudentScore> scoreMultimap = ArrayListMultimap.create(); 
        for(int i=10;i<20;i++){
            StudentScore studentScore=new StudentScore();
            studentScore.CourseId=1001+i;
            studentScore.score=100-i;
            scoreMultimap.put("peida",studentScore);
        }
        System.out.println("scoreMultimap:"+scoreMultimap.size());
        System.out.println("scoreMultimap:"+scoreMultimap.keys());

        Collection<StudentScore> studentScore = scoreMultimap.get("peida");
        StudentScore studentScore1=new StudentScore();
        studentScore1.CourseId=1034;
        studentScore1.score=67;
        studentScore.add(studentScore1);

        StudentScore studentScore2=new StudentScore();
        studentScore2.CourseId=1045;
        studentScore2.score=56;
        scoreMultimap.put("jerry",studentScore2);

        System.out.println("scoreMultimap:"+scoreMultimap.size());
        System.out.println("scoreMultimap:"+scoreMultimap.keys());

        for(StudentScore stuScore : scoreMultimap.values()) {
            System.out.println("stuScore one:"+stuScore.CourseId+" score:"+stuScore.score);
        }

        scoreMultimap.remove("jerry",studentScore2); 
        System.out.println("scoreMultimap:"+scoreMultimap.size());
        System.out.println("scoreMultimap:"+scoreMultimap.get("jerry"));

        scoreMultimap.put("harry",studentScore2);
        scoreMultimap.removeAll("harry");
        System.out.println("scoreMultimap:"+scoreMultimap.size());
        System.out.println("scoreMultimap:"+scoreMultimap.get("harry"));
    }
Copier après la connexion
Multimap


Multimap fournit une implémentation riche, vous pouvez donc l'utiliser pour remplacer Map dans le programme

Ce qui précède est le contenu de Java-Class Library-Guava-Multimap. Pour plus de contenu connexe, veuillez faire attention au PHP. Site Web chinois (m.sbmmt.com) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal