java集合框架---Map总结

/*
Map--
    |--Hashtable:底层是哈希表数据结构,不可以存入null键null值。线程同步。
    |--HashMap:底层是哈希表数据结构,可以存入null键null值。线程不同步。
    |--TreeMap:底层是二叉树数据结构,线程不同步。可以给键排序

 */
package pack;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

/*public class Main {

    public static void main(String[] args) {

        Map<Integer,String> map = new HashMap<Integer,String>();
        map.put(1, "java1");  //增
        map.put(2, "java2");
        map.put(3, "java3");

        map.remove(4);  //删
        //sys(map.containsKey(1));  //判

        //sys(map.get(2));      //查
        //sys(map);
        查方法一:通过Set集合中的迭代器得到键,再通过get方法得到值
        Set<Integer> s = map.keySet();
        for(Iterator<Integer> it = s.iterator();it.hasNext(); ) {
            sys(map.get(it.next()));
        }

        Collection coll = map.values();
        for(Iterator<Integer> it = coll.iterator();it.hasNext(); ) {
            sys(it.next());
        }
        sys("---------------");
        查方法二:将Map集合中的映射关系取出,存到Set集合中
        Set<Map.Entry<Integer, String>> entryset = map.entrySet();
        Iterator<Map.Entry<Integer, String>> it = entryset.iterator();
        while(it.hasNext()) {
            Map.Entry<Integer, String> me = it.next();
            sys(me.getValue());
            sys(me.getKey());
        }
    }

    public static void sys(Object obj) {
        System.out.println(obj);
    }
}*/

/*在TreeSet中传入对象参数,按年龄排序*/
public class Main {
    public static void main(String[] args) {

        TreeMap<Person,Integer> ts = new TreeMap<Person,Integer>(new MyComparator());
        ts.put(new Person("java1",1), 01);
        ts.put(new Person("java3",3), 03);
        ts.put(new Person("java2",2), 02);
        ts.put(new Person("java4",4), 04);

        Set<Map.Entry<Person,Integer>> entryset = ts.entrySet();
        Iterator<Map.Entry<Person,Integer>> it = entryset.iterator();
        while(it.hasNext()) {
            Map.Entry<Person,Integer> me = it.next();
            Person per = me.getKey();
            Integer age1 = me.getValue();
            sys(per+"..."+age1);
        }

    }
    public static void sys(Object obj) {
        System.out.println(obj);
    }
}

class Person {
    private String name;
    private int age;
    Person(String name,int age) {
        this.name = name;
        this.age = age;
    }
    public int getAge() {
        return age;
    }
    public String getName() {
        return name;
    }
}

class MyComparator implements Comparator<Person> {
    public int compare(Person p1,Person p2) {
        int a = new Integer(p1.getAge()).compareTo(new Integer(p2.getAge()));
        if(a==0) {            //比较与前面行的区别,Integer与String有compareTo方法,而int没有
            return p1.getName().compareTo(p2.getName());
        }
        return a;
    }
}
时间: 2024-12-07 22:15:06

java集合框架---Map总结的相关文章

java集合框架--Map集合

1.Map集合的概述 Map集合是将键映射到值的对象.一个映射不能包含重复的键.每个键最多只能映射到一个值. 2.Map接口和Collection接口的不同? Map集合存储元素是成对出现的,Collection集合存储元素是单独出现的. Map集合的键是唯一的,值是可重复的. Collection集合的子接口Set是唯一的,List是可重复的. Map集合的数据结构值针对键有效,和值无关,而Collection接口的数据结构是针对元素有效. 3.Map集合示例及功能 package cn; i

黑马程序员——java集合框架(Map和工具类)

1.Map体系下有三个子类: HashMap    底层是哈希表数据结构,可以存入null键和null值,不同步---TreeMap    底层是二叉树数据结构,线程同步,可以用于给map集合中的键进行排序 和Set很像,Set底层是Map  添加元素时,如果出现相同键,那么厚添加的值会覆盖原有键对应的值,并且put方法会返回被覆盖的值 2.map集合的两种取出方式:  (1) keySet():将map中所有的键存入到Set集合,因为set具备迭代器                 可以以迭代

我所理解Java集合框架的部分的使用(Collection和Map)

所谓集合,就是和数组类似--一组数据.java中提供了一些处理集合数据的类和接口,以供我们使用. 由于数组的长度固定,处理不定数量的数据比较麻烦,于是就有了集合. 以下是java集合框架(短虚线表示接口,长虚线表示抽象类,实线表示类,箭头表示实现接口或者继承)(在网络上找的图,不知道原作者,侵权请联系我删除)(总之,关系很复杂,所以不用记得这个图,只是用来吓吓人而已的). 下面贴上个人理解之精简版之Collection(集)和Map(地图?暂且这么理解吧),话说思维导图蛮好用,以下是两幅思维导图

Java集合框架--List、Set、Map

Java集合框架接口和类的层次结构: java.util.Collection [I] +--java.util.List [I] +--java.util.ArrayList [C] +--java.util.LinkedList [C] +--java.util.Vector [C] +--java.util.Stack [C] +--java.util.Set [I] +--java.util.HashSet [C] +--java.util.SortedSet [I] +--java.u

Java集合框架总结(5)——Map接口的使用

Java集合框架总结(5)--Map接口的使用 Map用于保存具有映射关系的数据(key-vlaue).Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false Map中包含了一个keySet()方法,用于返回Map所以key组成的Set集合. Map集合与Set集合元素的存储形式很像,如Set接口下有HashSet.LinkedHashSet.SortedSet(接口).TreeSet.EnumSet等实现类和子接口,而Map接口下则有HashMa

初识Java集合框架(Iterator、Collection、Map)

1. Java集合框架提供了一套性能优良.使用方便的接口和类,它们位于java.util包中 注意: 既有接口也有类,图中画实线的是类,画虚线的是接口 使用之前须要到导入java.util包 List和Set是Collection的子接口,ArrayList和LinkedList是List的两个实现类,HashSet和TreeSet是Set的两个实现类 重点:ArrayList.LinkedList和HashSet Map接口对应的集合是以K-V键值对的方式存储数据的,不同于Collection

Java集合框架中Map接口的使用

在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不是线性的存放对象的引用,Map接口提供了一种映射关系,所有的元素都是以键值对(Entry类型对象实例)的方式存储的,所以能够根据key快速查找value,key是映射关系的索引,value是key所指向的对象,注意,这里的value不是一个数值,而是一个对象的引用,Java集合框架的元素均是指对象!

【JAVA集合框架之Map】

一.概述.1.Map是一种接口,在JAVA集合框架中是一个非常重要的集合.2.Map一次添加一对元素,所以又称为“双列集合”(Collection一次添加一个元素,所以又称为“单列集合”)3.Map集合中存放的是一个一个的键值对,集合中存放的元素必须保证键的唯一性.二.常用方法.1.添加  V put(K key, V value)           将指定的值与此映射中的指定键关联(可选操作). 该方法的作用就是向集合中添加一个键值对,并返回一个值:如果键存在,则返回对应的旧值,并以新值取代

【转】Java集合框架List,Map,Set等全面介绍

原文网址:http://android.blog.51cto.com/268543/400557 Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构. Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +--java.util.LinkedList [C]   +--java.u