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”);

  • 相关阅读:
    ubuntu删除django和安装django
    linux shell 统计文件单词出现次数
    linux shell $$、$!特殊符号
    linux安装zabbix需要php两个模块php-bcmach与php-mbstring
    linux 源码编译与卸载
    Job for dhcpd.service failed because the control process exited with error code. See "systemctl status dhcpd.service" and "journalctl -xe" for details.问题
    Linux中部署DNS分离解析技术
    NFS网络文件系统服务搭建
    Samba服务搭建
    Linux RAID磁盘阵列技术
  • 原文地址:https://www.cnblogs.com/juncaoit/p/6675752.html
Copyright © 2011-2022 走看看