Maison  >  Article  >  Java  >  Un morceau de code pour comprendre l'utilisation de List, Set et Map en Java

Un morceau de code pour comprendre l'utilisation de List, Set et Map en Java

高洛峰
高洛峰original
2017-01-22 15:18:021497parcourir

Les codes d'utilisation de List, Set et Map en Java sont les suivants :

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();
}
}

Regardons la différence entre set map list

Ce sont toutes des interfaces de collection

set - les valeurs qu'il contient ne peuvent pas être répétées, structure de données non ordonnée
liste - les valeurs qu'il contient peuvent être répétées, car il s'agit d'une structure de données ordonnée
map - structure de données appariée, valeur de clé Doit être unique (les clés ne peuvent pas être les mêmes, sinon la valeur sera remplacée)

La liste enregistre les objets dans l'ordre dans lequel ils sont saisis, sans opérations de tri ni d'édition.

Set n'accepte chaque objet qu'une seule fois et utilise sa propre méthode de tri interne (généralement, vous vous souciez uniquement de savoir si un élément appartient au Set, pas son ordre - sinon vous devriez utiliser un List ).

Map enregistre également une copie de chaque élément, mais celle-ci est basée sur la "clé". Map a également un tri intégré, il ne se soucie donc pas de l'ordre dans lequel les éléments sont ajoutés. Si l'ordre d'ajout des éléments est important pour vous, vous devez utiliser LinkedHashSet ou LinkedHashMap

Collection est une collection d'objets qui a deux sous-interfaces List et Set

<.>La liste peut être passée en indice (1,2..) pour obtenir la valeur, la valeur peut être répétée


tandis que Set ne peut obtenir la valeur que via le curseur et la valeur ne peut pas être répétée


ArrayList, Vector et LinkedList sont les classes d'implémentation de List


ArrayList n'est pas sécurisé pour les threads et Vector est sécurisé pour les threads. La couche inférieure de ces deux classes est implémentée. par tableaux


LinkedList n'est pas sécurisé pour les threads et la couche inférieure est implémentée par une liste chaînée


Map est une collection de paires clé-valeur

HashTable et HashMap sont les classes d'implémentation de Map


HashTable est thread-safe et ne peut pas stocker de valeurs nulles


HashMap n'est pas thread-safe et peut stocker des valeurs nulles

HashMap n'est pas thread-safe et peut stocker des valeurs nulles

Ce qui précède est ce que l'éditeur vous présente à propos de Java. J'espère que ces connaissances sur l'utilisation de List, Set et Map vous seront utiles. Si vous avez des questions, laissez-moi un message et l'éditeur le fera. vous répondrons à temps. Je voudrais également vous remercier tous pour votre soutien au site Web PHP chinois !

Pour plus d'articles sur l'utilisation de List, Set et Map en Java, veuillez faire attention au site Web PHP chinois !
Déclaration:
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