Java集合框架

Java集合框架

collection://所有单列集合中共性方法:没有索引方法
list接口://1.有序的集合2.允许储蓄重复元素3.有索引可以用for遍历
    vactor集合:
    ArrayList集合:
    LinkedList集合:
set接口://1.不允许存储重复2.没有索引
    TreeSet集合://无序集合
    HashSet集合://无序集合
    LinkedHashSet集合://有序集合
    
    
    
collection://所有集合共有的方法
    public boolean add(E e);//把给定的对象放到当前集合中
    public void clear();//清空集合中所有的元素
    public boolean remove(E e);//把给定的对象在当前集合删除
    public boolean contains(E e);//判断当前集合是否包含给定对象
    public boolean isEmpty();//判断当前集合是否为空
    public int size();//集合元素个数
    public object[] toArray();//把集合中元素,存储到数组中
    
    iterator接口://迭代器//取出集合元素
    先判断有没有,有的话就取出来,一直判断,直到所有的取出来;
    java.util.iterator;
    boolean hasnext();//有返回true;
    E next();//取出下一个元素 -1索引,概念
    迭代器是一个接口,无法直接使用;//特殊
    Collection接口中有一个方法叫做iterator();
    Iterator<E> iterator();//返回上一个进行的迭代的迭代器;
    1.获取迭代器
    2.判断集合中有没有元素
    3.取出来
    
    增强for循环:底层也是迭代器
    for(集合/数组类型 变量名:集合名){};
泛型://有静态
    修饰符 <E> 返回类型 方法名 (参数列表(使用泛型)){方法体};
    泛型接口;
数据类型:
栈:先进后出
队列:先进先出;
数组:查询快,增慢
红黑树:最大和最小比不能2倍;一层黑一层红(查询快)

List接口://1.有索引-取出和放进去的顺序是一致的2.允许存储重复
    void add(index,element);
    E get(index,element);
    E set(index,element);
    E remove(index,element);
        ArrayList集合:查询快,增删慢;(底层数组)
        LinkedList集合:查询慢,增删快(底层链表/双向链表)//不能使用多态
            push();
            addFirst();
            addLast();//以上为添加
            removeFirst();//开头
            removeLast();//尾巴
            pop();//第一个元素
            getFirst();//获取第一个元素
            getLast();//获取最后一个元素
            isEmpty();//查看表中是不是空表,1/0
        Vector集合:单列集合(了解);底层:数组
            单线程,同步;
Set接口://不包含重复元素-没有索引-、
        迭代器来遍历;
        增强for循环遍历;
    HashSet集合://哈希表(查询的非常快)-无序-不是同步
    /*哈希值:十进制的整数由系统给的;(对象逻辑地址);
    hashCode();//native:代表调用本地操作系统的方法;哈希码值;
    String类重写了objct类的hashCode();
    */
    集合方式来把相同的元素放到同一个数组中,然后用链表连起来,超过八位用红黑树来存储
LinkedHashSet集合://extend hashset
    在hashset集合基础上再加一条链表记录元素的存储顺序;
    可变参数:数据类型确定,参数个数不确定
    (数据类型...变量名);//0.1.2.3.。。。底层为数组 
    注意:1.一个方法只能有一个可变参数
          2.多个参数可变参数需写在最后;
    特殊写法:
collections:

Map集合:双列;
    Map<K,V>//key不能重复,一一对应
    Hashmap<k,y>//哈希表,//无序集合
    linkehashmap<y,v>//哈希表加链表//有序集合,取出和放进去是一致的
    public V put(k key,v value);//添加
    public V get(obj key);// 通过k得到v
    remove(obj key);//移除
    containsKey();//判断k有没有
    遍历:
        keyset();//把所有k取出来放到set集合
    Entry<K,V>;//记录k和v,键和值的对象;
    set<map.entry<k,v>>entryset();//放到一个set集合,然后再遍历
        getkey();
        getvalue();
    自定义类型键值:
        保证key唯一:需要重写两个方法,hashcode和equals方法
    Linkehashmap://有序哈希表加链表(来记录元素的顺序)
Hashtable://不能为空,双链,同步,单线程,

    properties集合:io流有关的集合;    
最后总结:jdk9
    of静态方法:直接添加元素所有集合;
    
        
    
    
        
    
        
            
            
        
            
             
        
        
            
    
    
    


    
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天至少八杯水i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值