您的位置:首页 > 编程语言 > Java开发

Java基础-List集合共性方法、List和Set子接口、具体对象的特点

2018-03-21 09:17 495 查看
Collection:
    |--List:元素是有序的,元素可以重复。因为该集合体系有索引。
        |--ArrayList:底层的数据结构使用的是数组结构,特点:查询速度很快,但是增删稍慢。线程不同步。
        |--LinkedList:底层的数据结构使用的是链表结构,特点:增删很快,查询稍慢。
        |--Vector:底层的数据结构使用的是数组结构,线程同步,被ArrayList替代。
        数组是固定长度,集合是可变长度。

        ArrayList:数组默认为10个元素,超过之后,会new一个新的数组(50%延长),把原数组copy新的数组里。
        Vector:长度也为10,但是100%延长。浪费空间。  (代码:2)     
    |--Set:元素是无序的,元素不可以重复。
    
List:
    特有方法,凡是可以操作角标的方法都是该体系特有的方法。

增:
add(index,element);
addAll(index,Collection);
删:
remove(index);
改:
set(index,element);
查:
get(index);
subList(from,to);
listIterator();

List集合特有的迭代器,ListIterator是Iterator的子接口。
在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生ConcurrentModificationException异常。
所以,在使用迭代器时,只能用迭代器的remove操作元素,可是Iterator方法是有限的。
只能你对元素进行判断、取出和删除的操作。如果想要其他的操作如添加、修改等,就需要使用其子接口,ListIterator。
该接口只能通过List集合的ListIterator方法获取。
代码1:import java.util.*;

public class code
{
public static void method_get() {
ArrayList a = new ArrayList();

//增加元素
a.add("666");
a.add("66566");
a.add("6655566");

sop(a);//打印所有元素

a.add(2,"7654321");//通过角标增加元素
a.remove(1);//删除指定元素
a.set(2, "888");//通过角标修改元素

for(int i=0;i<a.size();i++)
sop(a.get(i));//通过角标获取元素

for(Iterator c = a.iterator();c.hasNext();)
sop(c.next());//通过迭代器获取元素

}

public static void main(String[] args) {
method_get();
}

public static void sop(Object obj) {
System.out.println(obj);
}
}ListIterator()方法代码:import java.util.*;

public class code
{
public static void method_get() {
ArrayList a = new ArrayList();

//增加元素
a.add("666");
a.add("777");
a.add("888");

ListIterator l=a.listIterator();
sop(l.hasPrevious());//false
while(l.hasNext()){
Object obj=l.next();
if(obj.equals("777"))
l.set("555");
}
sop(l.hasNext());//false
sop(l.hasPrevious());//true

}

public static void main(String[] args) {
method_get();
}

public static void sop(Object obj) {
System.out.println(obj);
}
}枚举就是Vector特有的取出方式。
我们可以发现枚举和迭代器很相似。其实枚举和迭代时一样的。
因为枚举的名称以及方法的名称都过长,所以就被迭代器取代了,枚举郁郁而终啦!

代码2:import java.util.*;

public class code
{
public static void Vectordemo() {
Vector a = new Vector();
a.add("java01");
a.add("java02");
a.add("java03");
a.add("java04");

Enumeration en = a.elements();

while(en.hasMoreElements())
sop(en.nextElement());
}

public static void main(String[] args) {
Vectordemo();
}

public static void sop(Object obj) {
System.out.println(obj);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐