JAVA面向对象笔记(4)

JAVA面向对象笔记(4)

四、Map接口(HashMap 、TreeMap )

1.Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作。最常用的实现类是HashMap

2.使用HashMap存储元素
3.TreeMap:适用于按自然顺序或自定义顺序遍历键(key)。
HashMap通常比TreeMap快一点(树和哈希表的数据结构使然),建议多使用HashMap,在需要排序的Map时候才用TreeMap。

4.Map接口常用方法
5.遍历Map集合
方法1:通过迭代器Iterator实现遍历
获取Iterator :Collection 接口的iterator()方法

Iterator的方法
boolean hasNext(): 判断是否存在另一个可访问的元素
Object next(): 返回要访问的下一个元素

方法2: 增强for循环

演示代码:

package cn.jbit.exec;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 使用HashMap存储和处理企鹅信息。
 */
public class Test4 {
    public static void main(String[] args) {

        /* 1、创建多个企鹅对象*/
        Penguin ououPenguin = new Penguin(1,"欧欧", "Q仔");
        Penguin yayaPenguin = new Penguin(2,"亚亚", "Q妹");
        Penguin meimeiPenguin = new Penguin(3,"美美", "Q妹");
        Penguin feifeiPenguin = new Penguin(4,"菲菲", "Q妹");

        /* 2、创建HashMap集合对象并把多个企鹅对象放入其中*/
        Map penguinMap=new HashMap();
        penguinMap.put(ououPenguin.getId(),ououPenguin);
        penguinMap.put(yayaPenguin.getId(),yayaPenguin);
        penguinMap.put(meimeiPenguin.getId(),meimeiPenguin);
        penguinMap.put(feifeiPenguin.getId(),feifeiPenguin);
        /*3、通过迭代器依次输出集合中所有狗狗的信息*/
        System.out.println("使用Iterator遍历,所有企鹅的昵称和品种分别是:");
        Set keys=penguinMap.keySet();//取出所有key的集合
        Iterator it=keys.iterator();//获取Iterator对象
        while(it.hasNext()){
            int key=it.next();  //取出key
            Penguin penguin=penguinMap.get(key);  //根据key取出对应的值
            System.out.println(penguin.getName()+"    "+penguin.getSex());
        }
        /*4、通过foreach依次输出集合中所有狗狗的信息*/
        System.out.println("使用foreach语句遍历,所有企鹅的昵称和品种分别是:");
         for(int key:keys){
             Penguin penguin=penguinMap.get(key);  //根据key取出对应的值
                System.out.println(penguin.getName()+"    "+penguin.getSex());    
        }
    }
}

五、Set接口(HashSet 、TreeSet)
1.常用方法
first():返回此Set集合中第一个(最低)元素
last():返回此Set集合中最后一个(最高)元素
comparator():返回对Set进行排序的比较器,如果Set使用自然顺序,则返回null
headSet(T test):返回一个新的Set集合,拥有test(不包含)之前的所有对象
tailSet(T test):返回一个新的Set集合,拥有test(包含)之后的所有对象
subSet(T test1,E test2):返回一个新的Set集合,拥有test(包含)之后,test2(不包含)之前的所有对象。

演示代码:

public class set{
    public static void main(String[] args) {
        //创建String类型的TreeSet集合
        TreeSet  tree=new TreeSet();
        tree.add("zhangsan");//添加元素
        tree.add("lisi");
        tree.add("wangwu");
        System.out.print("tree的第一个元素:");
        System.out.println(tree.first());
        System.out.print("tree的最后一个元素:");
        System.out.println(tree.last());
        System.out.println("创建迭代器遍历集合");
        Iterator it =tree.iterator();
        //遍历集合的方法
        while(it.hasNext()){
            String string =it.next();
            System.out.println(string);
        }
        System.out.println("取出lisi之前的对象元素");
        it=tree.headSet("lisi").iterator();
        while(it.hasNext()){
            String string =it.next();
            System.out.println(string);
        }   
         }
    }

六、最后提一下:泛型集合
1.可以用于解决以下强制类型转换时容易出现的异常问题
List的get(int index)方法获取元素
Map的get(Object key)方法获取元素
Iterator的next()方法获取元素

给TA打赏
共{{data.count}}人
人已打赏
编程专区

JAVA面向对象笔记(3)

2022-4-28 15:33:00

编程专区

JAVA面向对象笔记(5)

2022-4-28 15:55:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索