Map工具类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Map工具类相关的知识,希望对你有一定的参考价值。

Arrays工具类:
  操作数组的工具类
  工具类汇总的方法基本都是静态的

**Arrays.toString(arr):把数组中的内容转成字符串
**Arrays.asList(arr):数组转集合

  数组转成的集合不能进行添加和删除
  因为数组的长度是固定的
  数组只能存储对象

**list.size():集合元素个数
**list.add():添加
**list.remove():移除

/**
*
*   为什么要数组转集合?
*
*   集合的方法多:
*    迭代:
*    Iterator<String> ite = list.iterator();
*   while(ite.hasNext())
*   {
*    System.out.println(ite.next());
*   }
*   判断数组是否包含某个元素:
*    list.contains(str);
*
**/

/**
*   int [] arr = {1, 2, 3};
*   List list = Aarrays.asList(arr);
*   System.out.print(list.size());
*
*   为什么list长度为1?
*
*   数组只能存储对象arr是个int数组
*   集合存储的是引用类型的对象
*   因为数组是引用类型的
*   asList将arr整体作为一个对象存入集合
*   所以长度为1
*
**/

Collections工具类:
  操作集合的工具类

**Collections.sort():排序
  按照集合中对象所属的类自身具备的比较方式进行排序的
    即int compareTo()方法
  按照自定义的比较方式对集合中的对象进行拍苏
    实现Comparator<String>接口
    重写compare方法
    传入实现接口的类的对象

**Collections.reverseOrder():翻转输出结果
  没有参数则翻转默认的比较方式

/**
*
*   如何得到和比较值相反的比较方式?
*
*   Comparator com = Collections.reverseOrder(new ComByLength());
*   Collections.sort(list, com);
*
*   System.out.println(list);
*
**/

 

**Collections.max(list):求最值

/**
*
*   自己实现max?
*
*   public static <E extends Compare<? super E>> getMax(Clooection<? extends E> col)
*   {
*     Iterator<? extends E> ite = col.iterator();
*     E obj = ite.next();//得到集合中的一个对象
*
*      while(ite.hasNext())
*      {
*       E object = ite.next();
*       int num = obj.compareTo(object);
*       if(num < 0)
*          obj = object;
*      }
*      return obj;
*   }
*
**/

**Collections.toArray(T[] a):集合转数组
  给定的数组长度大于集合中对象的个数,则使用给定的数组
  给定的数组长度小于集合中对象的个数,会创建一个新的数组织,数组长度和集合对象个数相同
  给定的数组长度和集合中对象个数相同
  集合转数组可以防止数据被随意的添加或删除,因为数组长度是固定的

增强for()循环:

  for(数据类型 变量名; 被遍历的数组或Collection集合)
  {

  }

  int[] arr = {12,34,5,67,7,8};

  for(int num:arr)//foreach
  {
  System.out.println(num + " ");
  }

 

内部执行:

  每次从数组arr中获得一个元素,存入到num中

  List<String> list = new ArrayList<>();
  list.add("adfd");
  list.add("java");

  for(String str:list)
  {
    System.out.println(str.toUpperCase() + " ");
  }

  HashMap<String, String> map = new HashMap<>();
  map.put("001", "aaa");
  map.put("002", "bbb");

  for(String key: map.keySet())
  {
    String value = map.get(key);
    System.out.println(key + "= " + value);
  }

  或:

  for(Map.entry<String, String> en: map.entrySet())
  {
    String key = en.getKey();
    String value = map.getValue();
    System.out.println(key + "= " + value);
  }

可变参数:
  简化书写
  可变参数必须写在参数列表的最后
  对应过前面固定的参数后,剩下的参数都存入可变参数

求和:
  //其实把接收的数存到数组中
  public static int add(int... a)
  {
    int sum = 0;
    for(int i = 0;i < a.length; i ++)
    {
      sum = sum + a[i];
    }
    return sum;
  }

  调用:

  int sum = add(1,2,3,4,4);
  System.out.println(sum);

静态导入:
  import static java.util.Arrays.*;
  将Arrays的静态方法导入进来
  使用的时候就可以略去类名,直接使用sort()
  当方法名相同时,类名不可以省略
  当类名相同时,包名不可以省

**Arrays.sort(arr):排序
**Arrays.binarySearch(arr, 21):二分查找

runtime:
  运行时
  每个Java运行程序都有一个Runtime类实例,可以获得运行时信息
  应用程序不能自己创建运行时对象,必须通过方法返回

**getRuntime():返回当前应用程序的运行时对象
**maxMemory():返回运行时的最大内存
**gc():垃圾回收器






























































































































以上是关于Map工具类的主要内容,如果未能解决你的问题,请参考以下文章

Collections工具类与map集合

map转实体工具类

list转map工具类,根据指定的字段分组

工具类

java 实体对象与Map之间的转换工具类(自己还没看)

怎么调用httputil工具类