黑马程序员——java集合

map集合:该集合存储键值对,一对一对的往里存,要保证键的唯一性
 1、添加
          put(K key,V value)
          putAll(Map<? extends K,?extends V> m)
  2、删除
          clear()
          remove(Object key)
  3、判断
          containsValue(Object value)
          containsKey(Object key)
          isEmpty()
  4、获取
      get(Object key)
  size()
  values();
 
  entrySet()
  keySet()
  Map
      |--Hashtable:底层是哈希表结构,不可以存入null键,null值,该集合是线程同步的
                  
          
      |--HashMap:底层是哈希表数据结构,允许使用null键,null值该集合是不同步的,效率高
      |--TreeMap底层数据结构是二叉树,线程不同步,可以用于给map集合中的键进行排序
  和set很像
  其实set底层就是使用了map集合
 
 map集合的两种取出方式:
     1、Set<k> keySet:将Map中所有的键存入到Set集合,因为set具备迭代器。
          所有可以迭代方式取出所有的键,在根据get方法,获取每一个键对应的值
      map集合的取出原理:将map集合转成set集合,通过迭代器取出
      2、Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到了set
      集合中,而这个关系的数据类型就是Map.Entry
      Map.Entry其实Entry也是一个接口,它是Map接口中的一个内部接口
     先获取map集合的所有键的Set集合,keySet
        Set<String> keySet = map.keySet();
        有了Set集合,就可以获取其迭代器
        Iterator<String> it = keySet.iterator();
        
        map扩展知识
  map集合被使用是因为具备映射关系
        
        
Arrays:用于操作数组的工具类
把数组变成list集合有什么好处?
        可以使用集合的方法和思想来操作数组中的元素
        注意:将数组变成集合,不可以使用集合的增删方法
        因为数组的长度是固定的
        contains get  indexOf() subList()
        如果你增删,那么会发生UnsupportedOperationException,
        
        如果数组中的元素都是对象,那么变成集合时,数组中的元素 直接转换成集合中的元素
         如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在
其他对象:类中的方法和属性都是静态的
System描述系统的一些信息
out:标准输出,默认是控制台
in:默认输入,默认是键盘
获取所有系统属性信息
高级for循环
     格式:
     for(数据类型 变量名 :被遍历的集合(Collection)或者数组){}
    
     传统for和高级for有什么区别?
     高级for有一个局限性,必须有被遍历的目标
     建议在遍历数组时,还是希望使用传统for,因为传统for可以定义角标
System.getProperties();
如何在系统自定义一些特有信息?
因为Properties是HashTable的子类,也就是Map集合的子类对象
          那么可以通过map的方法取出该集合中的元素
          该集合中存储都是字符串,没有定义泛型
System.setProperties();
Runtime对象?
该类没有提供构造函数
说明不可以new对象,那么会直接想到该类中的方法都是静态的
发现该类中还有非静态方法
说明该类肯定有这个会提供了方法获取本类对象,而且该方法是静态的,并且返回值类型是本类类型
由这个特点可以看出该类使用了单类设计模式
该方式是static Runtime  getRuntime();
Date
Calendar
Math—Random
因为Properties是HashTable的子类,也就是Map集合的子类对象
          那么可以通过map的方法取出该集合中的元素
          该集合中存储都是字符串,没有定义泛型
StaticImport静态导入
      当类名重名时,需要指定具体的包名
      当方法重名时,指定具体所属的对象或者类名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值