JAVA集合

点击量:68

List Map Set

接口interface

接口可以继承接口

接口不能直接创建对象

一个接口可以有无数个实现类

多态

多态多态的前提是继承或者实现关系

       多态的好处:低耦合(扩展性)

       缺点:不能调用实现类的特有方法

                     若要调用,需要强制转换

集合与数组的区别

       数组可以存储基本类型和引用类型

       数组长度不可改变

       集合只能存储引用类型

Collection集合顶级父类

       .add();添加元素到集合

       .clear();清空集合的所有元素

       .size();返回集合的元素个数

       .isEmpty():判断集合中是否有元素

       .remove()按内容删除

                            若有重复元素,一般只删除第一个

       .contains(Object obj) 判断集合是否包含给定的对象

       .toArray() 将集合中的所有元素放到一个数组中(返回Object[]的数组)

集合转化为数组

       String[] strs=new String[list.size()];

       list.toArray(strs);

等同于

       String[] strs=list.toArray(new String[list.size()]);

       Collection接口没有get()方法,遍历可以用迭代去

       Collection.removeAll(Collection s)用于当前集合删除s集合中的元素

 

迭代器

       .hasNext();判断是否还有元素

       .next();用来获取迭代器指定位置的元素,且自动往后移一个位置。

              使用:

                            1:获取迭代器

                            2每次获取元素前调用hasNext进行判断

                            3使用next()获取指定位置的值

List<String> list = new ArrayList<>();

        Collections.addAll(list, "ll", "bb", "cc");

        Iterator iterator=list.iterator();

        while (iterator.hasNext()) {

            String next = (String) iterator.next();

            System.out.println(next);

           

        }

增强FOR

       在增强For里不能对数据进行修改

       for(数据类型 变量名:集合/数组){

             

       }

 

       可以用来遍历集合或数组

       底层原理使用的还是迭代器。

       和普通For相比的局限性

1,没有索引                             

2不能使用add() remove()

LinkedList与ArrayList的区别

       链表将数据以离散的形式来存储:增删快,查询慢(从第一个节点开始查询)

LinkedList的底层是双链表

       getFirst();

       getLast();

       removeFirst()并返回其值

       removeLast();并返回其值

将LinkedList作为栈来使用

       public void push(E e)压栈

       public E pop()出栈;

       public bollean isEmpty()判断是否为空(必须要用此来创建循环才能达到栈的效果)

       while(!isEmpty){}

      

增删快,查询慢

数组:增删慢,查询快

ArrayList增删慢,查询快

二叉树:每个节点的子节点不超过两个

二叉排序树:将数据有顺序的保存

红黑树:平衡的二叉排序树

 

Collection没有get();

但其子类有get()

Arraylist 节点删除方式:中间某一个元素删除,该元素位置后方的所有元素集体向前移动;

若要循环删除某个ArrayList中的多个元素,需要从后往前倒着删

感谢您的阅读
文章由作者个人总结,欢迎指出文章错误



下一篇:GIT快速入门