• HashMap中的遍历及Java中的排序


    HashMap中的遍历

    public class HashMapStudy {
        public static void main(String[] args) {
            //一般来说,最好初始化一下, 小于12的就不要初始化了
            // 默认的就是16,因为加载因子是0.75,也就是到16*0.75=12的时候会扩容
            Map<String, String> map = new HashMap<>(3);
    
            map.put("welcome","to");
            map.put("java","study");
            map.put("wechat","best396975802");
    
            //遍历方法1: 先遍历key , 再取出value
            System.out.println("遍历方法1: 先遍历key , 再取出value");
            for (String key : map.keySet()) {
                System.out.println("key is "+key);
                System.out.println("value is "+ map.get(key));
            }
            //遍历方法2: 直接遍历value
            System.out.println("遍历方法2: 直接遍历value");
            for (String value : map.values()) {
                System.out.println("value is "+value);
            }
    
            //遍历方法3: 通过遍历entry来取Key和value,推荐的方法!!!
            System.out.println("遍历方法3: 通过遍历entry来取Key和value,推荐的方法!!!");
            for (Map.Entry<String, String> entry : map.entrySet()) {
                System.out.println("key is "+entry.getKey());
                System.out.println("value is "+ entry.getValue());
            }
    
            //遍历方法4: 通过forEach方法直接遍历key和value
            System.out.println("遍历方法4: 通过forEach方法直接遍历");
            map.forEach((key,value)->{
                System.out.println("key is "+ key);
                System.out.println("value is "+ value);
            });
        }
    }
    

    Java中的排序

    升序

    使用 java.util.Arrays 类中的 sort() 方法对数组进行升序分为以下两步:
    1.导入 java.util.Arrays 包。
    2.使用 Arrays.sort(数组名) 语法对数组进行排序,排序规则是从小到大,即升序。

    public static void main(String[] args) {
        // 定义含有5个元素的数组
        double[] scores = new double[] { 78, 45, 85, 97, 87 };
        System.out.println("排序前数组内容如下:");
    
        // 对scores数组进行循环遍历
        for (int i = 0; i < scores.length; i++) {
            System.out.print(scores[i] + "\t");
        }
        System.out.println("\n排序后的数组内容如下:");
    
        // 对数组进行排序
        Arrays.sort(scores);
    
        // 遍历排序后的数组
        for (int j = 0; j < scores.length; j++) {
            System.out.print(scores[j] + "\t");
        }
    }
    

    降序

    在 Java 语言中使用 sort 实现降序有两种方法:
    1)利用 Collections.reverseOrder() 方法(Collections 是一个包装类。

    public static void main(String[] args) {
        Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 };    // 数组类型为Integer
        Arrays.sort(a, Collections.reverseOrder());
        for (int arr : a) {
            System.out.print(arr + " ");
        }
    }
    

    2)实现 Comparator 接口的复写 compare() 方法,代码如下:

    public class Test {
        public static void main(String[] args) {
            /*
             * 注意,要想改变默认的排列顺序,不能使用基本类型(int,double,char)而要使用它们对应的类
             */
            Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 };
            // 定义一个自定义类MyComparator的对象
            Comparator cmp = new MyComparator();
            Arrays.sort(a, cmp);
    
            //转换为函数式接口
            Arrays.sort(a, (first, second) -> first- second );  //这是升序
            Arrays.sort(a, (first, second) -> second - first);  //这是降序
            for (int arr : a) {
                System.out.print(arr + " ");
            }
        }
    }
    
    // 实现Comparator接口
    class MyComparator implements Comparator<Integer> {
        @Override
        public int compare(Integer o1, Integer o2) {
            /*
             * 如果o1小于o2,我们就返回正值,如果o1大于o2我们就返回负值, 这样颠倒一下,就可以实现降序排序了,反之即可自定义升序排序了
             */
            return o2 - o1;
        }
    }
    

    注意:使用以上两种方法时,数组必须是包装类型,否则会编译不通过。

    Comparator下的compare方法:

    Arrays.sort()方法:
    它是一个stable的排序方法,相等的元素位置不会交换。

  • 相关阅读:
    社区检测算法--Infomap
    correlation matrices 相关矩阵
    多分类评估指标
    juniper修改用户密码
    zabbix4.4监控mysql状态
    高并发linux内核参数优化
    用脚本监控windows tcp的连接数
    使用typeperf监控系统资源
    rsync同步时报错
    windows jenkins编译报错处理
  • 原文地址:https://www.cnblogs.com/techgy/p/16295430.html
Copyright © 2020-2023  润新知