JAVA基础知识

集合

容器|集合:

                存储多个数据

容量:

           容量可以多少进行动态的变动

集合:         

         存储任意引用类型数据 集合的长度可变,可以根据需求动态的增删数据,长度随之改变

    Collection        (单一值)                             Map  (键值对)
​
       /       \                                                      /             \
​
     List      Set                                           HashMap     HashTable

ArrayList HashSet (无须的 不重复)

LinkedList (有序的 重复的)

Collection

容器中的数据层次结构:

            Collection: 集合层次结构中的根节口。集合表示一组对象。称为元素
            Collection:单个值得集合
            遍历方式:
​
                    foreach
​
                    iterator迭代器
              MAP:键值对的集合(KEY-VALVE)

使用迭代器:

                1.获取迭代器的实例,用来遍历指定的集合

                2.判断是否存在下一个数据

                3.获取下一个数据

泛型

泛型:jdk1.5

    参数化类型:
               数据类型作为参数传递
​
                            只能配置引用数据类型
​
    <>定义泛型
​
    泛型的行为发现在编译期间,运行期间泛型配置的内容无效,泛型擦除4
​
    要求先定义泛型,才能使用泛型
​
    泛型类:
          类型的后面定义泛型,在使用类型的时候可以通过泛型传递具体的类型,类中可以进行使用
​
    泛型方法:
​
            代码简单简洁
​
            增强程序健壮性,避免类型转换异常的出现
​
            增强稳定性和可读性

List

List:有序,可重复

        Set:
            无序,不可重复的|唯一的
​
        List:
             有序集合(序列)。该接口的用户可以精确控制列表中每个元素的插入位置。
​
        新增: 
            一些列根据索引操作的方法(对于Collection)
            set:
                无序,不可重复|唯一的
                
                遍历方式 :
                            for普通for循环
                            foreach 增强for循环
                            iterator迭代器            

ArrayList

ArrayList:

                有序,可重复的

ArrayList :

                实现所有可选列表操作,并允许所有元素,包括null 。 底层结构:

数组 Object[] elementData;

特点:

         根据索引查询遍历效率较高,增删效率低 应用场景:

         适合应用在大量做查询,少量做增删的位置        

扩容问题:         

        初始容量 :

                        默认初始容量为10 ,在第一次添加add的时候进行构建 private static final int DEFAULT_CAPACITY = 10;

扩容机制 :

                每次扩容原容量的1.5倍 int newCapacity = oldCapacity + (oldCapacity >> 1);

新增功能:

                void forEach(Consumer<? super E> action)

遍历 :

        普通for

        增强for

         iterator迭代器

         listIterator迭代器

Vector :

             底层结构 : 数组

特点 :

        与ArrayList相同

区别:

       1) Vector是同步的|线程安全 ArrayList不同步|线程不安全,相对效率较高

  2) Vector每次扩容原容量的2倍 ArrayList每次扩容原容量的1.5倍,相对ArrayList更有利于节省内存

 总结 :  如果不需要线程安全实现,建议使用ArrayList代替Vector

LinkedList

LinkedList:

                实现所有可选列表操作,并允许所有元素(包括null )。

底层结构:

                双向链表

 特点:

        查询效率低,增删效率高

应用场景:

                单个数据值的集合中,允许数据有序,且可重复,在大量做增删,少量做查询的时候时候适合使用链表

 新增功能:

                新增了一些与链表头尾相关的方法

注意:

          此与现实不同步

链表

链表分类:

                单向链表                 双向链表

单行链表:

                记录链表头结点

双向链表;

                记录链表头与链表为节点

链表结构中数据是有序的,可重复的,没有索引,但是可以模拟索引

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值