zoukankan      html  css  js  c++  java
  • Map知识点Utilities后续整理(关于Collections,Array,增强for循环)

    一:介绍

    1.介绍

      里面都是静态方法。

      可以直接调用。  

      Collections是集合框架中的一个工具类。该类中的方法都是静态的
      提供的方法中有可以对list集合进行排序,二分查找等方法。
      通常常用的集合都是线程不安全的。因为要提高效率。 如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的。

    二:Collections程序

    1.sort的使用

      除了使用自然排序,还可以使用的是添加比较器。

     1 import java.util.ArrayList;
     2 import java.util.Collections;
     3 import java.util.Comparator;
     4 public class Test66 {
     5     public static void main(String[] args) {
     6         sortDemo1();
     7     }
     8     public static void sortDemo1(){
     9         ArrayList<String> al=new ArrayList<>();
    10         al.add("abbdd");
    11         al.add("o");
    12         al.add("bcd");
    13         al.add("bqpr");
    14         System.out.println("随机打印:"+al);
    15         Collections.sort(al);        //基础的自然排序
    16         System.out.println("基础的自然排序"+al);
    17         Collections.sort(al,new StrLenComparator());//先根据长度排序
    18         System.out.println("先根据长度排序"+al);     //
    19     }
    20 }
    21 class StrLenComparator implements Comparator<String>{
    22     public int compare(String s1, String s2) {
    23         if(s1.length()>s2.length()){
    24             return 1;
    25         }
    26         if(s1.length()<s2.length()){
    27             return -1;
    28         }
    29         return s1.compareTo(s2);
    30     }
    31     
    32 }

    2.运行程序

      

    3.binarySearch方法

     1 import java.util.ArrayList;
     2 import java.util.Collections;
     3 
     4 public class Test67 {
     5     public static void main(String[] args) {
     6         int index=halfDemo1();
     7         System.out.println("index="+index);
     8     }
     9     public static int halfDemo1(){
    10         ArrayList<String> al=new ArrayList<>();
    11         al.add("abbdd");
    12         al.add("o");
    13         al.add("bcd");
    14         al.add("bqpr");
    15         Collections.sort(al);
    16         int index=Collections.binarySearch(al, "bqpr");//需要已排序
    17         return index;
    18     }
    19 }

    4.运行的结果

      

    5.max的使用

      依然分两种使用方式。

     1 import java.util.ArrayList;
     2 import java.util.Collections;
     3 import java.util.Comparator;
     4 import java.util.List;
     5 
     6 public class Test68 {
     7 
     8     public static void main(String[] args) {
     9         maxDemo();
    10     }
    11     public static void maxDemo(){
    12         List<String> list = new ArrayList<String>();
    13         list.add("abcd");
    14         list.add("aaa");
    15         list.add("zz");
    16         list.add("kkkkk");
    17         list.add("qq");
    18         list.add("z");
    19         Collections.sort(list);
    20         System.out.println(list);
    21         //基础的max
    22         String max1 = Collections.max(list);
    23         System.out.println("max1="+max1);    
    24         //调用比较器的max
    25         String max2 = Collections.max(list,new StrLenComparator2());
    26         System.out.println("max2="+max2);
    27     } 
    28 
    29 }
    30 class StrLenComparator2 implements Comparator<String>{
    31     public int compare(String s1, String s2) {
    32         if(s1.length()>s2.length()){
    33             return 1;
    34         }
    35         if(s1.length()<s2.length()){
    36             return -1;
    37         }
    38         return s1.compareTo(s2);
    39     }
    40     
    41 }

    6.reverseOrder方法

      使用StrLenComparator比较器之后在进行逆序。

      就是在reverse之后在逆向排序输出。

     1 import java.util.Collections;
     2 import java.util.Iterator;
     3 import java.util.TreeSet;
     4 public class Test69 {
     5     public static void main(String[] args) {
     6         orderDemo();
     7     }
     8     public static void orderDemo(){
     9         TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new StrLenComparator()));
    10         ts.add("abcde");
    11         ts.add("aaa");
    12         ts.add("k");
    13         ts.add("cc");
    14         Iterator it = ts.iterator();
    15         while(it.hasNext())
    16         {
    17             System.out.println(it.next());
    18         }
    19     }
    20 }

    7.运行结果

      

    8.toArray方法

      为什么要将集合变数组?
      为了限定对元素的操作。不需要进行增删了。

     1 import java.util.ArrayList;
     2 import java.util.Arrays;
     3 
     4 public class Test70 {
     5     public static void main(String[] args) {
     6         ArrayList<String> al = new ArrayList<String>();
     7         al.add("abc1");
     8         al.add("abc2");
     9         al.add("abc3");
    10         String[] arr = al.toArray(new String[al.size()]);
    11         System.out.println(Arrays.toString(arr));
    12     }
    13 
    14 }

    9.运行结果

      

    三:Arrays程序

    1.toString

    1 import java.util.Arrays;
    2 public class Test71 {
    3     public static void main(String[] args) {
    4         int[] arr={1,4,2,7,4};
    5         String str=Arrays.toString(arr);
    6         System.out.println("str="+str);
    7     }
    8 }

    2.运行结果

      

    3.asList

      将数组变成list集合

      注意:将数组变成集合,不可以使用集合的增删方法。

     1 import java.util.Arrays;
     2 import java.util.List;
     3 public class Test72 {
     4     public static void main(String[] args) {
     5         //int
     6         int[] nums1 = {2,4,5};
     7         List<int[]> li =  Arrays.asList(nums1);
     8         System.out.println(li);
     9         //Integer
    10         Integer[] nums2={3,6,5};
    11         List<Integer> li2=Arrays.asList(nums2);
    12         System.out.println(li2);
    13         //String
    14         String[] arr={"dsds","jun","opu"};
    15         List<String> liArr=Arrays.asList(arr);
    16         System.out.println(liArr);
    17         
    18     }
    19 }

    4.运行结果以及解析

      

    四:增强for循环

     1.String的

     1 import java.util.ArrayList;
     2 
     3 public class Test73 {
     4     public static void main(String[] args) {
     5         ArrayList<String> al = new ArrayList<String>();
     6         al.add("abc1");
     7         al.add("abc2");
     8         al.add("abc3");
     9         for(String s : al)
    10         {
    11             System.out.println(s);
    12         }
    13         System.out.println(al);
    14     }
    15 }

    2.map

     1 import java.util.HashMap;
     2 import java.util.Map;
     3 import java.util.Set;
     4 
     5 public class Test74 {
     6     public static void main(String[] args) {
     7         Map<Integer,String> hm=new HashMap<>();
     8         hm.put(1, "zhangsan");
     9         hm.put(2, "lisi");
    10         hm.put(3, "wangwu");
    11         //keySet
    12         Set<Integer> keyset=hm.keySet();
    13         for(Integer i : keyset){
    14             System.out.println(hm.get(i));
    15         }
    16         //=============
    17         System.out.println("==========");
    18         //entrySet
    19         for(Map.Entry<Integer, String> entry:hm.entrySet() ){
    20             System.out.println(entry.getKey()+":"+entry.getValue());
    21         }
    22         
    23     }
    24 
    25 }

    3.运行结果

      

     

    五:静态导入

     1.格式

      import static  java.lang.System.*;//导入了System类中所有静态成员。

    2.使用

      out.println(“al”);

  • 相关阅读:
    deeplearning.ai 卷积神经网络 Week 1 卷积神经网络
    deeplearning.ai 构建机器学习项目 Week 2 机器学习策略 II
    deeplearning.ai 构建机器学习项目 Week 1 机器学习策略 I
    deeplearning.ai 改善深层神经网络 week3 超参数调试、Batch Normalization和程序框架
    deeplearning.ai 改善深层神经网络 week2 优化算法
    deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面
    cs231n spring 2017 lecture8 Deep Learning Networks
    cs231n spring 2017 lecture7 Training Neural Networks II
    cs231n spring 2017 lecture6 Training Neural Networks I
    cs231n spring 2017 Python/Numpy基础
  • 原文地址:https://www.cnblogs.com/juncaoit/p/6675752.html
Copyright © 2011-2022 走看看