Maison  >  Article  >  Java  >  Quelles sont les classes de collection couramment utilisées en Java

Quelles sont les classes de collection couramment utilisées en Java

王林
王林original
2019-12-02 17:04:314254parcourir

Quelles sont les classes de collection couramment utilisées en Java

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] ; >

 : Une collection de structures de listes chaînées.

  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();     
     }  
     }
LinkedList3. 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é. HashMapTreeMapLa classe HashMap accède aux objets clés selon l'algorithme de hachage. Vous pouvez surcharger les méthodes

et

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(). TreeMapComparatorCarte : 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 Java

Ce 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!

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