Map知识点Utilities后续整理(关于Collections,Array,增强for循环)

时间:2023-03-08 15:33:56
Map知识点Utilities后续整理(关于Collections,Array,增强for循环)

一:介绍

1.介绍

  里面都是静态方法。

  可以直接调用。  

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

二:Collections程序

1.sort的使用

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

 import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Test66 {
public static void main(String[] args) {
sortDemo1();
}
public static void sortDemo1(){
ArrayList<String> al=new ArrayList<>();
al.add("abbdd");
al.add("o");
al.add("bcd");
al.add("bqpr");
System.out.println("随机打印:"+al);
Collections.sort(al); //基础的自然排序
System.out.println("基础的自然排序"+al);
Collections.sort(al,new StrLenComparator());//先根据长度排序
System.out.println("先根据长度排序"+al); //
}
}
class StrLenComparator implements Comparator<String>{
public int compare(String s1, String s2) {
if(s1.length()>s2.length()){
return 1;
}
if(s1.length()<s2.length()){
return -1;
}
return s1.compareTo(s2);
} }

2.运行程序

  Map知识点Utilities后续整理(关于Collections,Array,增强for循环)

3.binarySearch方法

 import java.util.ArrayList;
import java.util.Collections; public class Test67 {
public static void main(String[] args) {
int index=halfDemo1();
System.out.println("index="+index);
}
public static int halfDemo1(){
ArrayList<String> al=new ArrayList<>();
al.add("abbdd");
al.add("o");
al.add("bcd");
al.add("bqpr");
Collections.sort(al);
int index=Collections.binarySearch(al, "bqpr");//需要已排序
return index;
}
}

4.运行的结果

  Map知识点Utilities后续整理(关于Collections,Array,增强for循环)

5.max的使用

  依然分两种使用方式。

 import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; public class Test68 { public static void main(String[] args) {
maxDemo();
}
public static void maxDemo(){
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
Collections.sort(list);
System.out.println(list);
//基础的max
String max1 = Collections.max(list);
System.out.println("max1="+max1);
//调用比较器的max
String max2 = Collections.max(list,new StrLenComparator2());
System.out.println("max2="+max2);
} }
class StrLenComparator2 implements Comparator<String>{
public int compare(String s1, String s2) {
if(s1.length()>s2.length()){
return 1;
}
if(s1.length()<s2.length()){
return -1;
}
return s1.compareTo(s2);
} }

6.reverseOrder方法

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

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

 import java.util.Collections;
import java.util.Iterator;
import java.util.TreeSet;
public class Test69 {
public static void main(String[] args) {
orderDemo();
}
public static void orderDemo(){
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new StrLenComparator()));
ts.add("abcde");
ts.add("aaa");
ts.add("k");
ts.add("cc");
Iterator it = ts.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}

7.运行结果

  Map知识点Utilities后续整理(关于Collections,Array,增强for循环)

8.toArray方法

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

 import java.util.ArrayList;
import java.util.Arrays; public class Test70 {
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("abc1");
al.add("abc2");
al.add("abc3");
String[] arr = al.toArray(new String[al.size()]);
System.out.println(Arrays.toString(arr));
} }

9.运行结果

  Map知识点Utilities后续整理(关于Collections,Array,增强for循环)

三:Arrays程序

1.toString

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

2.运行结果

  Map知识点Utilities后续整理(关于Collections,Array,增强for循环)

3.asList

  将数组变成list集合

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

 import java.util.Arrays;
import java.util.List;
public class Test72 {
public static void main(String[] args) {
//int
int[] nums1 = {2,4,5};
List<int[]> li = Arrays.asList(nums1);
System.out.println(li);
//Integer
Integer[] nums2={3,6,5};
List<Integer> li2=Arrays.asList(nums2);
System.out.println(li2);
//String
String[] arr={"dsds","jun","opu"};
List<String> liArr=Arrays.asList(arr);
System.out.println(liArr); }
}

4.运行结果以及解析

  Map知识点Utilities后续整理(关于Collections,Array,增强for循环)

四:增强for循环

1.String的

 import java.util.ArrayList;

 public class Test73 {
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("abc1");
al.add("abc2");
al.add("abc3");
for(String s : al)
{
System.out.println(s);
}
System.out.println(al);
}
}

2.map

 import java.util.HashMap;
import java.util.Map;
import java.util.Set; public class Test74 {
public static void main(String[] args) {
Map<Integer,String> hm=new HashMap<>();
hm.put(1, "zhangsan");
hm.put(2, "lisi");
hm.put(3, "wangwu");
//keySet
Set<Integer> keyset=hm.keySet();
for(Integer i : keyset){
System.out.println(hm.get(i));
}
//=============
System.out.println("==========");
//entrySet
for(Map.Entry<Integer, String> entry:hm.entrySet() ){
System.out.println(entry.getKey()+":"+entry.getValue());
} } }

3.运行结果

  Map知识点Utilities后续整理(关于Collections,Array,增强for循环)

 

五:静态导入

1.格式

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

2.使用

  out.println(“al”);