Die Codes für die Verwendung von List, Set und Map in Java lauten wie folgt:
package tingjizifu; import java.util.*; public class TongJi { /* * 使用Scanner从控制台读取一个字符串,统计字符串中每个字符出现的次数,要求使用学习过的知识完成以上要求 * 实现思路根据Set、List、Map集合的特性完成。 */ public static void main(String[] args) { // 输入字符串 Scanner input = new Scanner(System.in); String shuRu = input.next(); // 把字符串字符装入List集合 List<String> list = new ArrayList<String>(); for (int i = 0; i < shuRu.length(); i++) { list.add(String.valueOf(shuRu.charAt(i))); } // 把字符串字符装入Set集合 Set<String> set = new HashSet<String>(); for (int i = 0; i < shuRu.length(); i++) { set.add(String.valueOf(shuRu.charAt(i))); } // 用Set中的字符与List中的字符进行比较,相同就加1进行计数, // 然后把Set集合中的字符作为键(key),统计的数作为值(value),最后打印出Map中的数据 Map<String, Integer> map = new HashMap<String, Integer>(); for (String str : set) { int sum = 0; // System.out.println(str); for (int i = 0; i < list.size(); i++) { if (list.get(i).equals(str)) { sum++; } } map.put(str, sum); } Set<String> ss = map.keySet(); for (String str : ss) { System.out.println(str + "出现次数为" + map.get(str) + "次"); } input.close(); } }
Sehen wir uns den Unterschied zwischen Set Map List an
Sie sind alles Sammlungsschnittstellen
set – die darin enthaltenen Werte dürfen nicht wiederholt werden, ungeordnete Datenstruktur
list – die darin enthaltenen Werte dürfen wiederholt werden, da es sich um eine geordnete Datenstruktur handelt
map – gepaarte Datenstruktur, Schlüsselwert Muss eindeutig sein (die Schlüssel dürfen nicht gleich sein, sonst wird der Wert ersetzt)
Liste speichert Objekte in der Reihenfolge, in der sie eingegeben werden, ohne Sortier- oder Bearbeitungsvorgänge.
Set akzeptiert jedes Objekt nur einmal und verwendet seine eigene interne Sortiermethode (normalerweise interessiert Sie nur, ob ein Element zum Set gehört, nicht seine Reihenfolge – andernfalls sollten Sie eine List verwenden).
Map speichert auch eine Kopie jedes Elements, diese basiert jedoch auf „Schlüssel“. Map verfügt auch über eine integrierte Sortierung, sodass die Reihenfolge, in der Elemente hinzugefügt werden, egal ist. Wenn Ihnen die Reihenfolge des Hinzufügens von Elementen wichtig ist, sollten Sie LinkedHashSet oder LinkedHashMap verwenden. Collection ist eine Sammlung von Objekten, List und Set
Liste kann Subscript (1,2..) übergeben werden, um den Wert zu erhalten, der Wert kann wiederholt werden
, während Set den Wert nur über den Cursor abrufen kann und der Wert nicht wiederholt werden kann
ArrayList, Vector und LinkedList sind die Implementierungsklassen von List
ArrayList ist threadsicher und Vector ist threadsicher. Die unterste Ebene dieser beiden Klassen ist implementiert durch Arrays
LinkedList ist Thread-unsicher und die unterste Ebene wird durch eine verknüpfte Liste implementiert
Map ist eine Sammlung von Schlüssel-Wert-Paaren
HashTable ist threadsicher und kann keine Nullwerte speichern
HashMap ist nicht threadsicher und kann Nullwerte speichern