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

原文地址:https://www.cnblogs.com/juncaoit/p/6675752.html