加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

TreeSet和TreeMap初始化时有无比较器的测试

发布时间:2020-12-14 06:39:15 所属栏目:Java 来源:网络整理
导读:import java.util.*; public class testCode { public static void main(String[] args){ /** * (1)TreeSet里面:没有接口Comparator中的compare方法,只调用了接口Comparator中的equals方法 * (2)继承了抽象类AbstractSetE:equals方法被覆写.故TreeSet调用equ

import java.util.*;

public class testCode {
public static void main(String[] args){

    /**
     * (1)TreeSet里面:没有接口Comparator中的compare方法,只调用了接口Comparator中的equals方法
     * (2)继承了抽象类AbstractSet<E>:equals方法被覆写.故TreeSet调用equals方法时,是调用的这个equals方法.
     */
    //例一:TreeSet在初始化时,指定比较器,从而指定元素的排列顺序
    TreeSet<Integer> set=new TreeSet<Integer>(new Comparator<Integer>() {
        @Override
        public int compare(Integer o1,Integer o2) {
            return o2-o1;//降序
        }
    });
    set.add(1);set.add(4);set.add(3);

    //例二:TreeSet在初始化时,不指定比较器,故元素的排列顺序为默认的升序
    TreeSet<Integer> set1=new TreeSet<Integer>();
    set1.add(1);set1.add(4);set1.add(3);

    //分别输出set,set1
    System.out.println("set: ");
    Iterator<Integer> iterator1=set.iterator();
    while (iterator1.hasNext()){
        System.out.print(iterator1.next()+" ");
    }
    System.out.println();
    System.out.println("---------------------");


    System.out.println("set1: ");
    Iterator<Integer> iterator2=set1.iterator();
    while (iterator2.hasNext()){
        System.out.print(iterator2.next()+" ");
    }
    System.out.println();
    System.out.println("---------------------");




    /**
     * (1)TreeMap里面:没有接口Comparator中的compare方法,只调用了接口Comparator中的equals方法
     * (2)继承了抽象类AbstractMap<K,V>:equals方法被覆写.故TreeMap调用equals方法时,是调用的这个equals方法.
     */
    //例一:TreeMap初始化时,未指定比较器,默认按照key升序
    TreeMap<Integer,Integer> map=new TreeMap<Integer,Integer>();
    map.put(1,1);map.put(2,3);map.put(-1,3);map.put(4,3);

    //例二:TreeMap初始化时,指定了比较器,按照key降序
    TreeMap<Integer,Integer> map1=new TreeMap<Integer,Integer>(new Comparator<Integer>() {
        @Override
        public int compare(Integer o1,Integer o2) {
            return o2-o1;//降序
        }
    });
    map1.put(1,1);map1.put(2,3);map1.put(-1,3);map1.put(4,3);

    //输出map,map1
    Iterator<Map.Entry<Integer,Integer>> i1=map.entrySet().iterator();
    Iterator<Map.Entry<Integer,Integer>> i2=map1.entrySet().iterator();

    System.out.println("map:");
    while (i1.hasNext()){
        Map.Entry<Integer,Integer> entry=i1.next();
        System.out.print("key:"+entry.getKey()+",");
        System.out.println("value: "+entry.getValue());
    }
    System.out.println("---------------------");


    System.out.println("map1: ");
    while (i2.hasNext()){
        Map.Entry<Integer,Integer> entry=i2.next();
        System.out.print("key: "+entry.getKey()+",");
        System.out.println("value: "+entry.getValue());
    }
    System.out.println("---------------------");
}

}


<span style="font-size:14px;">
输出结果:

Process finished with exit code 0

<span style="font-size:14px;">

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读