H5W3
当前位置:H5W3 > java > 正文

【Java】JAVA集合框架总结(二)

JAVA集合框架总结(二)

Dragoncl发布于 54 分钟前

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);
}
}
java
阅读 21更新于 48 分钟前
本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
avatar

Dragoncl

偶然的一个夜晚….步入了这个数码的世界

5 声望
0 粉丝

0 条评论
得票时间

avatar

Dragoncl

偶然的一个夜晚….步入了这个数码的世界

5 声望
0 粉丝

宣传栏

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);
}
}

本文地址:H5W3 » 【Java】JAVA集合框架总结(二)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址