关于java:JAVA集合框架总结二

42次阅读

共计 1303 个字符,预计需要花费 4 分钟才能阅读完成。

linkedList 绝对于 ArrayList 领有更加丰盛的办法实现,须要的时候能够间接查问 api 文档,这里就不列出

对于 Vector:

1、Vector 也是 List 接口的一个子类实现
2、Vector 和 ArrayList 一样,底层都是应用数组进行实现
3、面试常常问两者的区别(1)ArrayList 是线程不平安的,效率高,Vector 是线程平安的,然而效率较低(2)ArrayList 在进行扩容的时候,是扩容 1.5 倍,Vector 扩容的时候,是扩容 2 倍


接下来讲一下对于 List 中的迭代器 Iterator:

 在 java 代码中蕴含 3 种循环形式 

** do。。。while
while
for 还有一种加强 for 循环的形式,能够简化循环的编写 **

对于 Iterable

 所有的汇合类都默认实现了 Iterable 的接口 (通过外部类来实现调用),实现此接口意味着具备了加强 for 循环的能力,也就是 for-each
加强 for 循环实质上应用的也是 iterator 性能, 此接口意味着具备了加强 for 循环的能力,也就是 for-each

办法:

iterator() 返回另一个 Iterator 接口
foreach() 在 iterator 办法中,要求返回一个 Iterator 的接口实例对象,此接口中蕴含了 hasNext()、next()
在应用 iterator 进行迭代的过程中如果删除其中的某个元素会报错,并发操作异样,因而如故宫 遍历的同时须要批改元素, 倡议应用 ListIterator
ListIterator 迭代器提供了向前和向后两种遍历形式
始终是通过 corsor 和 lastret 的指针来获取元素值及向下的遍历索引
当应用向前遍历的时候必须要保障指针在迭代器的结尾,否则无奈获取值
    public static void main(String[] args) {ArrayList list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        int i1 = 0;
        for(int i = 0;i<list.size();i++)
        {System.out.println(list.get(i));
        }
        // 迭代器
//        Iterator iterator =list.iterator();
 // 边遍历边删除元素必须用到此办法
 ListIterator listIterator = list.listIterator();
        while (listIterator.hasNext()){Object o = listIterator.next();
            if(o.equals(1)){listIterator.remove();
            }
            System.out.println(listIterator.next());
        }
        // 这时候指针在最初
 while(listIterator.hasPrevious()){System.out.println(listIterator.previous());
        }
        System.out.println("-------------");
        for(Object i :list){System.out.println(i);
        }
    }

正文完
 0