1. Set collection
Les principales classes d'implémentation sont HashSet
et TreeSet
pour stocker les références aux objets, et aucun objet en double n'est autorisé.
Exemple de code :
public class SetTest { public static void main(String[] args) { Set set=new HashSet(); //添加数据 set.add("abc"); set.add("cba"); set.add("abc");//故意重复 set.add(123); set.add(true); System.out.println("集合元素个数:"+set.size()); //遍历出集合中每一个元素 Iterator it=set.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } }
Identifié par la méthode equals() de Java. Si vous avez des besoins particuliers, vous devez surcharger la méthode equals().
1.HashSet()
, appelez la méthode hashCode() de l'objet, obtenez le code de hachage, puis calculez l'emplacement de l'objet dans la collection. Déterminez s'il existe des doublons en comparant le code de hachage avec la méthode equals(). Par conséquent, si vous surchargez la méthode equals(), vous devez également surcharger la méthode hashCode().
Tutoriels vidéo recommandés : Java Online Learning
2.TreeSet()
, hérite de l'interface ShortedSet
et peut trier les objets dans une collection. La méthode de tri par défaut est le tri naturel, mais cette méthode ne peut trier que les objets qui implémentent l'interface Comparable. Cette interface est implémentée en Java pour les objets numériques et caractères tels que Integer, Byte, Double, Character et String.
S'il existe un tri spécial, vous devez surcharger la méthode compareTo()
sous l'interface ou construire une collection via la classe d'implémentation de l'interface Comparator
.
2. Collection de listes
Ses principales classes d'implémentation sont LinkedList
et ArrayList
La première implémente la structure de liste chaînée, et la seconde peut représenter un tableau de taille variable.
List se caractérise par sa capacité à stocker des objets de manière linéaire et permet le stockage d'objets en double. La liste peut être triée à l’aide de la méthode statique de tri de la classe Collections. trier(Liste liste) tri naturel ; sort(List listm,Comparator codddmparator)
tri personnalisé.
Exemple de code :
List
: interface de collection linéaire, ordonnée
ArrayList
: tableau dynamique [tableau dynamique de longueur variable] ; >
public class ListTest { //ArrayList static void testOne(){ List list=new ArrayList(); //添加数据 list.add("abc"); list.add("cba"); list.add(123); list.add(0,"fist"); //查看集合长度 System.out.println("存放"+list.size()+"个元素"); list.remove(0);//删除第一个元素 //查看集合中是否包含cba if(list.contains("cba")){ System.out.println("包含元素cba"); } //取出集合中第二个元素 System.out.println("第二个元素是:"+list.get(1)); //取出集合中所有元素 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } //LinkedList static void testTwo(){ LinkedList list=new LinkedList(); //添加元素 list.add("aaaa"); list.add(123123); list.addFirst("1111111"); list.addLast("2222222"); list.add("33333333"); System.out.println("元素个数:"+list.size()); //取出第三个元素 System.out.println("第三个元素是:"+list.get(2)); //第一个元素 System.out.println("第一个元素:"+list.getFirst()); System.out.println("最后一个元素:"+list.getLast()); //删除第一个元素 list.removeFirst(); for (Object object : list) { System.out.println(object); } } public static void main(String[] args) { //testOne(); testTwo(); } }
LinkedList
3. Collection de cartes. Les principales classes d'implémentation sont
et. La carte ne nécessite pas d'unicité pour les valeurs, mais nécessite l'unicité pour les clés. Si une clé existante est ajoutée, l'objet de valeur d'origine sera écrasé. HashMap
TreeMap
La classe HashMap accède aux objets clés selon l'algorithme de hachage. Vous pouvez surcharger les méthodes
pour comparer les clés, mais les deux doivent être cohérentes. equals()
, peut être trié naturellement, ou un TreeMap peut être construit en passant la classe d'implémentation de hashCode()
. TreeMap
Comparator
Carte : une collection de structures de stockage de paires clé-valeur, non ordonnées.
Exemple de code :
public class MapTest { public static void main(String[] args) { //实例化一个集合对象 Map map=new HashMap(); //添加数据 map.put("P01", "zhangSan"); map.put("P02", "Lucy"); map.put("PSex", "男"); map.put("PAge", "39"); map.put("PAge", "22");//key,重复会被后面的覆盖 //判断是否有一个key为PSex if(map.containsKey("PSex")){ System.out.println("存在"); } System.out.println("集合大小:"+map.size()); System.out.println("输出key为PAge的值:"+map.get("PAge")); //遍历出Map集合中所有数据 Iterator it=map.keySet().iterator(); while(it.hasNext()){ String key=it.next().toString(); System.out.println("key="+key+",value="+map.get(key)); } /* Set set=map.keySet();//取出map中所有的key并封装到set集合中 Iterator it=set.iterator(); while(it.hasNext()){ String key=it.next().toString(); System.out.println("key="+key+",value="+map.get(key)); } */ } }
Articles et tutoriels connexes recommandés :
Programme d'entrée JavaCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!