• 集合、set以及HASH


    集合的数据结构
    数据结构就是内存中保存输出数据的形式,不同的数据结构会有不同的特征。
    堆栈结构:先进后出 代表类(stack);应用场景:java中的方法运行时所占用的空间就是这种结构。
    队列结构:先进先出 代表类(Queue);应用场景:凡是需要排队的地方均可使用。
    数组结构:内容的赋值(增删慢、查询快)ArrayList;应用场景:容器的查询次数多,修改次数少的时候可以使用;
    链表结构:呈现链式链接(查询慢,增删快) 代表类:LinkedList 应用场景:增删多,查询少的地方可以使用。
    Set集合:不包含重复元素的collectipon,更确切的说,set不包含满足e1.equals(e2)的元素对e1和e2.并且最多包含一个null元素。
    在set接口下有很多子类,常用的子类,有两个:HashSet、LinkedHast
    上述两个集合的数据结构中都包含hash表结构;
    特征:在判断元素是否重复的时候,会先判断元素的hash值;如果hash值一致的情况下,再次判断equals方法;

    hacode方法
    自定义数据类型,必须重写equals和hashCode方法,缺一不可!

    HashSet集合的使用
    Set集合的特点:不可以存放重复的元素;无序(无索引,不能保证存与去的顺序一致)、最多只能存放一个null值。
    LinkedHashSet集合
    linkedHastSet属于Hash子类,可以保证存取位置一致。
    HashSet与list判断元素是否重复的规则:
    调用参数对象的hashCode方法,得到hash值;如果hash值与集合中已经存在的任何一个对象的hash值不一致时,直接返回false;
    如果参数对象的hash值与集合中其中一个对象的hash值一致时,需要再次使用equals方法确认,如果equals方法得到true,说明两个对象一致;如果equals方法得到false,说明两个方法不相等;

    HastSet的Contains方法:
    比较的时候,直接通过参数对象 的hash值比较一次,再通过equals方法再确认一次即可;
    list的contais方法:
    比较的时候,按照比较的顺序逐次与参数比较,值到比完或比对成为止,效率低!

    MAP

    特点:1、map集合中的键不允许重复。2、每个键最多只能映射一个值。3、null也可以作为键和值使用。4、Map集合中值都是以键值对的形式存在,因此创建对象的时候,需要传递两个参数的值
    MAP集合的常见子类
    1、hashMap;2、LinkedHashMap(是hashMap的子类,可以保证存值和取值的顺序一致)
    HashMap的构造方法和常用方法
    构造:空参构造和传递一个map集合的构造
    常用方法:
    put(K,V)添加键值对,若map中已经包含了指定的key时,会使用新得value覆盖原来的value值。
    remove(K)移除
    get(K)通过键查询值
    clear()、containsKey()、containsValue()、size()、values()获取所有的value值以单列集合存在等。
    HashMap集合迭代方式1-键找值;
    1、面向map集合对象,获取map中所有的键组成的一个单列集合,这个单列集合是Set;(Map的keySet方法)
    2、使用增强for迭代set集合,可以获取每一个key的值;(增强for)
    3、面向map集合,根据每一个key的值从map中获取对应的value的值;(map的get方法)
    HashMap集合迭代方式2--键值对对象
    1、面向map集合,获取所有的键值对对象组成的一个set集合;(map的entryset方法)
    2、使用增强for迭代set集合,获取每一个键值对对象;(增强for)
    3、面向键值对对象分别获取key和value;(Entry的getKey和getValue)
    涉及到的API:map中的方法(entrySet方法)
    LinnkedHashMap
    HashMap存放自定义类型的key
    结论:需要对Key的数据类型进行重写hahCode方法和equals方法。
    可变参数:可变参数的实质就是一个数组,可以使用操作数组的方式来操作可变参数;可变参数只允许在方法的参数列表中使用。
    格式:
    修饰符 返回值类型 方法名(数据类型...参数名){

    }
    可变参数的好处:
    1、可变参数是jdk1.5之后出现的新特性;
    2、可变参数的实质就是数组,不能与数组的方法形成重载;
    3、如果参数列表中出现多个形参时,可变参数必须放在最后边;
    好处:对于方法的调用者可以传用任意多个参数!
    ProPerties集合
    ProPerties是hashTable的子类,是map的孙子类;map中的方法,properties都可以直接使用,不建议使用,建议使用properties自身特有的方法;
    特点:1、属于双列集合;2、没有泛型,键与值得数据类型都是String;3、有与IO流相互结合的方法,可以将集合中的数据保存到硬盘上,也可以从硬盘上将数据读取到集合中;
    properties集合的构造方法和常用方法
    构造:空参构造和一个带有指定默认值的空属性列表。
    常用方法:
    setProperty:存值的方法;getProperty(String Key,String values):读值的方法。
    StringPropertyNames方法,遍历
    properties与IO流相结合的方法
    将集合中的数据保存到硬盘上。
    ongoing硬盘上将数据读取到properties

  • 相关阅读:
    javascript的全局变量和局部变量
    Google Analytics统计代码GA.JS
    display和visible的区别
    div+css实现带三角箭头提示框
    css兼容IE8的一个简便方法 [转]
    20个值得关注最新的jQuery Plugins
    分享40多个新鲜的jQuery图片和内容幻灯插件
    JQuery插件让图片旋转任意角度且代码极其简单
    Android UI dp sp
    MaxScript用二进制读取方式获取Max文件版本
  • 原文地址:https://www.cnblogs.com/dubin382460/p/7517747.html
Copyright © 2020-2023  润新知