Java entrée au maître du chapitre 14 collections

annuaire

Interface collection

liste collection

Set collection

collection carte


Interface collection

  • Liste et Set interfaces héritent de l'interface Collection, de sorte que ces méthodes Liste et Set collections sont communes
  • En parcourant méthode retourne itérateur () un itérateur, itérateur suivant () retourne l'objet

liste collection

  • Autoriser la requête d'index en double, ordonnée et utile
  • Collection Interface LIst étend l'interface, tous les procédés contenus dans la collection, comprenant en outre deux méthodes importantes get (int index); l'obtention d'ensemble de l'élément spécifié de position (int index, objet OBJ), la position spécifiée de la collection de l'objet spécifié est modifié objets
  • Des exemples de collections Liste
    • Liste <E> Liste = new ArrayList <> (); index d'accès rapide peut aléatoire, insérer, supprimer, suppression lente
    • Liste <E> Liste = new LinkedList <> (), la vitesse d'accès aléatoire est lent, insérer, supprimer la vitesse rapide
package ex14_Collection;


import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

public class Muster {
    public static void main(String args[]) {
        Collection<String> list = new ArrayList<>();  //实例化集合类对象
        list.add("a");
        list.add("b");
        list.add("c");
        Iterator<String> it = list.iterator();  //创建迭代器
        while (it.hasNext()) {  //判断是否还有下一个元素
            String str = (String) it.next();  //获取集合中的元素
            System.out.println(str);
        }

        //随机获取一个字母,删除索引为2的元素
        List<String> list1 = new ArrayList<>();  //创建集合对象
        list1.add("1");
        list1.add("2");
        list1.add("2");
        int i = (int) (Math.random() * list.size());
        System.out.println("随机访问:" + list1.get(i));
        list1.remove("2"); // 删除对象
        list1.remove(1);  //删除索引位置的对象
        for (int j = 0; j < list1.size(); j++) {  //遍历集合
            System.out.print(list1.get(j) + " ");
        }
    }
}

Set collection

  • Ne peut pas être répétée, désordonnée
  • Ensemble classe d'implémentation commune d'interface a de la classe et la classe HashSet TreeSet
    • Définir l'ordre d'itération HashSet ne garantit pas que des éléments permet nuls
    • Set TreeSet implémente l'interface, l'interface met également en œuvre java.util.SortedSet, instruments de classe TreeSet Set ensemble dans l'ordre croissant en fonction de l'ordre naturel au cours de la traversée, peuvent être triées en fonction de la comparaison spécifiée
  • Séquentiellement stockés dans la classe Set TreeSet met en œuvre la collecte doit implémenter l'interface Comparable, l'interface compareTo (Object o de) Comparer cet objet avec une méthode de l'objet spécifié

package ex14_Collection;


import java.util.Iterator;
import java.util.TreeSet;

public class UpdateStu implements Comparable<Object> {  //创建类实现Comparable接口
    String name;
    long id;

    public UpdateStu(String name, long id) {
        this.name = name;
        this.id = id;
    }

    public int compareTo(Object o) {
        UpdateStu upstu = (UpdateStu) o;
        int result = id > upstu.id ? 1 : (id == upstu.id ? 0 : -1);
        return result;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public static void main(String[] args) {
        UpdateStu stu1 = new UpdateStu("李同学", 1011);
        UpdateStu stu2 = new UpdateStu("陈同学", 1021);
        UpdateStu stu3 = new UpdateStu("王同学", 1031);
        UpdateStu stu4 = new UpdateStu("马同学", 1041);
        TreeSet<UpdateStu> tree = new TreeSet<>();
        tree.add(stu1);
        tree.add(stu2);
        tree.add(stu3);
        tree.add(stu4);
        Iterator<UpdateStu> it = tree.iterator();  //Set集合中的所有对象的迭代器
        System.out.println("Set中所有元素:");
        while (it.hasNext()) {  //遍历集合
            UpdateStu stu = (UpdateStu) it.next();
            System.out.println(stu.getId() + " " + stu.getName());
        }

        it = tree.headSet(stu2).iterator();  //截取stu2之前的对象
        System.out.println("截取前面部分的集合:");
        while (it.hasNext()) {  //遍历集合
            UpdateStu stu = (UpdateStu) it.next();
            System.out.println(stu.getId() + " " + stu.getName());
        }

        it = tree.subSet(stu2, stu4).iterator();  //截取stu2-stu4之间的对象
        System.out.println("截取中间部分的集合:");
        while (it.hasNext()) {  //遍历集合
            UpdateStu stu = (UpdateStu) it.next();
            System.out.println(stu.getId() + " " + stu.getName());
        }

    }

}

collection carte

  • Interface de la carte ne Hériter l'interface Collection, en fournissant une clé de cartographie de valeur, la carte ne peut pas contenir la même clé
  • Interface de la carte a une classe mise en œuvre commune HashMap et TreeMap
    • HashMap est une réalisation carte basée sur une table de hachage d'interface, à haute efficacité add supprimer la relation de mappage, permet l'utilisation de valeurs NULL et la clé null, ne garantit pas l'ordre de cartographie
    • TreeMap non seulement pour atteindre l' interface carte, mais aussi réalisé l' interface java.util.SortedMap ensemble de la relation cartographie il y a un certain ordre , et ne permet donc pas la clé est nulle, ajouter la cartographie faible suppression entre efficacité
    • keySet () Set Les retours collection, valeurs collection retournée Collection
  • Carte collections peuvent être créées par le HashMap, l'ordre de sortie en cas de besoin, puis créer une instance de la même classe de correspondances complètes TreeMap

package ex14_Collection;


import java.util.*;

public class UpdateStu2 {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();  //创建Map实例
        map.put("01", "李同学");  //向集合中添加对象
        map.put("02", "魏同学");
        map.put("03", "魏同学");
        map.put("04", null); //会被打印出来
        Set<String> set = map.keySet();  //构建Map集合中所有key对象的集合
        Iterator<String> it = set.iterator();  //创建集合迭代器
        System.out.println("key集合中的元素:");
        while (it.hasNext()) {
            System.out.println(it.next());
        }
        Collection<String> coll = map.values();  //构建Map集合中所有values值的集合
        it = coll.iterator();
        System.out.println("values集合中的元素");
        while (it.hasNext()) {
            System.out.println(it.next());
        }

    }
}
package ex14_Collection;

public class Emp {
    private String e_id;
    private String e_name;

    public Emp(String e_id, String e_name) {
        this.e_id = e_id;
        this.e_name = e_name;
    }

    public String getE_id() {
        return e_id;
    }

    public String getE_name() {
        return e_name;
    }

    public void setE_id(String e_id) {
        this.e_id = e_id;
    }

    public void setE_name(String e_name) {
        this.e_name = e_name;
    }
}
package ex14_Collection;

import java.util.*;

public class MapText {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();

        Emp emp = new Emp("351", "张三");  //创建Emp对象
        Emp emp2 = new Emp("512", "李四");
        Emp emp3 = new Emp("853", "王一");
        Emp emp4 = new Emp("125", "赵六");
        Emp emp5 = new Emp("341", "黄七");

        map.put(emp.getE_id(), emp.getE_name());  //添加对象到集合中
        map.put(emp2.getE_id(), emp2.getE_name());
        map.put(emp3.getE_id(), emp3.getE_name());
        map.put(emp4.getE_id(), emp4.getE_name());
        map.put(emp5.getE_id(), emp5.getE_name());

        Set<String> set = map.keySet();  //获取Map集合中的key对象集合
        Iterator<String> it = set.iterator();
        System.out.println("HashMap集合类实现的Map集合,无序:");
        while (it.hasNext()) {
            String str = (String) it.next();
            String name = (String) map.get(str);
            System.out.println(str + " " + name);
        }

        TreeMap<String, String> treeMap = new TreeMap<>();  //创建TreeMap集合对象
        treeMap.putAll(map);
        Iterator<String> iter = treeMap.keySet().iterator();
        System.out.println("TreeMap类实现的Map集合,键值升序:");
        while (iter.hasNext()) {
            String str = (String) iter.next();
            String name = treeMap.get(str);
            System.out.println(str + " " + name);
        }

    }
}

 

 

 

 

 

 

 

 

Publié 46 articles originaux · louange gagnées 0 · Vues 1024

Je suppose que tu aimes

Origine blog.csdn.net/weixin_37680513/article/details/103482515
conseillé
Classement