מפה להמרת מחרוזות בג'אווה

1. סקירה כללית

במדריך זה נתמקד בהמרה מ- a מַפָּה אל א חוּט ולהיפך.

ראשית, נראה כיצד להשיג את אלה באמצעות שיטות הליבה של Java, ולאחר מכן נשתמש בכמה ספריות צד שלישי.

2. בסיסי מַפָּה דוגמא

בכל הדוגמאות, אנו הולכים להשתמש בו מַפָּה יישום:

מילות מיליםמפתח = HashMap חדש (); wordsByKey.put (1, "one"); wordsByKey.put (2, "שניים"); wordsByKey.put (3, "שלוש"); wordsByKey.put (4, "ארבע");

3. המר א מַפָּה אל א חוּט על ידי איטרציה

בוא נחזור על כל המקשים במקלדת שלנו מַפָּה ולכל אחד מהם, הוסף את שילוב הערך-מפתח לתוצאה שלנו StringBuilder לְהִתְנַגֵד.

למטרות עיצוב, אנו יכולים לעטוף את התוצאה בסוגריים מתולתלים:

מחרוזת המרה ציבוריתWithIteration (מפת מפה) {StringBuilder mapAsString = StringBuilder חדש ("{"); עבור (מפתח שלם: map.keySet ()) {mapAsString.append (key + "=" + map.get (key) + ","); } mapAsString.delete (mapAsString.length () - 2, mapAsString.length ()). להוסיף ("}"); mapAsString.toString () להחזיר; }

כדי לבדוק אם המירו את שלנו מַפָּה נכון, בואו נבצע את הבדיקה הבאה:

@Test הציבור בטל givenMap_WhenUsingIteration_ThenResultingStringIsCorrect () {String mapAsString = MapToString.convertWithIteration (wordsByKey); Assert.assertEquals ("{1 = one, 2 = two, 3 = three, 4 = four}", mapAsString); }

4. המר א מַפָּה אל א חוּט שימוש ב- Java Streams

כדי לבצע המרה באמצעות זרמים, ראשית עלינו ליצור זרם מהזמין מַפָּה מקשים.

שנית, אנו ממפים כל מפתח לקריא אנושי חוּט.

לבסוף, אנו מצטרפים לערכים אלה, ולמען הנוחות, אנו מוסיפים כמה כללי עיצוב באמצעות ה- Collectors.joining () שיטה:

מחרוזת ציבורית convertWithStream (מפת מפה) {String mapAsString = map.keySet (). stream () .map (key -> key + "=" + map.get (key)) .collect (Collectors.joining (",", "{", "}")); mapAsString להחזיר; }

5. המר א מַפָּה אל א חוּט באמצעות גויאבה

בואו נוסיף את גויאבה לפרויקט שלנו ונראה כיצד נוכל להשיג את ההמרה בשורת קוד אחת:

 com.google.guava גויאבה 27.0.1-jre 

לביצוע ההמרה באמצעות גויאבה נַגָר בכיתה, עלינו להגדיר מפריד בין שונה מַפָּה ערכים ומפריד בין מקשים לערכים:

מחרוזת ציבורית convertWithGuava (מפת מפה) {החזר Joiner.on (","). עם KeyValueSeparator ("="). להצטרף (מפה); }

6. המר א מַפָּה אל א חוּט באמצעות Apache Commons

כדי להשתמש ב- Apache Commons, תחילה נוסיף את התלות הבאה:

 org.apache.commons commons-collection4 4.2 

ההצטרפות היא מאוד פשוטה - אנחנו רק צריכים להתקשר ל StringUtils.join שיטה:

מחרוזת ציבורית convertWithApache (מפת מפה) {return StringUtils.join (מפה); }

אזכור מיוחד אחד מגיע ל debugPrint שיטה זמינה ב- Apache Commons. זה מאוד שימושי למטרות איתור באגים.

כשאנחנו מתקשרים:

MapUtils.debugPrint (System.out, "מפה כמחרוזת", wordsByKey);

טקסט הבאגים ייכתב למסוף:

מפה כמחרוזת = {1 = java.lang אחת. מחרוזת 2 = שתי java.lang. מחרוזת 3 = שלוש java.lang. מחרוזת 4 = ארבע java.lang.String} java.util.HashMap

7. המר א חוּט אל א מַפָּה שימוש בזרמים

לביצוע המרה מ- חוּט אל א מַפָּהבואו נגדיר היכן להתפצל וכיצד לחלץ מפתחות וערכים:

מפה ציבורית להמירWithStream (String mapAsString) {Map map = Arrays.stream (mapAsString.split (",")) .map (entry -> entry.split ("=")) .collect (Collectors.toMap (entry -> entry [0], ערך -> ערך [1])); מפת חזרה; }

8. המר א חוּט אל א מַפָּה באמצעות גויאבה

גרסה קומפקטית יותר של האמור לעיל היא להסתמך על גויאבה שתעשה עבורנו את הפיצול והמרה בתהליך אחד:

מפה ציבורית להמירWithGuava (String mapAsString) {return Splitter.on (','). withKeyValueSeparator ('='). split (mapAsString); }

9. מסקנה

במדריך זה ראינו כיצד להמיר מַפָּה אל א חוּט ולהפך תוך שימוש בשיטות הליבה של Java ובספריות צד שלישי.

היישום של כל הדוגמאות הללו ניתן למצוא באתר GitHub.


$config[zx-auto] not found$config[zx-overlay] not found