List接口

一、List接口
java.util.List接口 extends Collection接口

特点:

  1. 有序的集合(存储和取出元素的顺序一致)
  2. 索引,包括了一些有索引的方法
  3. 存储重复的元素
  4. 实现类
    Arraylist(底层采用数组结构,查询快,增删慢),
    LinkedList(底层采用链表结构,查询慢,增删快),
    Vector(底层采用数组结构,查询快,增删慢)

举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.*;
public class Main extends Object{
public static void main(String[] args) {
//创建一个List集合对象(多态)
List<String> list=new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("a");
System.out.println(list);
System.out.println("!!!!!!!!!!!!!!!!!!!");


//使用增强for循环
for(String i:list)
{
System.out.println(i);
}

System.out.println("!!!!!!!!!!!!!!!!!!!");


//使用迭代器
Iterator<String> lists=set.iterator();
while(sets.hasNext())
{
String a=lists.next();
System.out.println(a);
}

}
}

代码结果如下:
[a, b, c, d, a] (重复的a可以打印出来!!!)
!!!!!!!!!!!!!!!!!!!
a
b
c
d
a
!!!!!!!!!!!!!!!!!!!
a
b
c
d
a


特定(索引)的方法:

  1. public void add(int index,E element);将指定元素添加到集合的指定位置
  2. public E get(int index);返回指定位置元素
  3. public E remove(int index);移除指定位置元素(返回被移除的元素)  需要赋给一个变量
  4. public E set(int index,E element);替换指定位置元素(返回之前的元素)  需要赋给一个变量

举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.*;
public class Main extends Object{
public static void main(String[] args) {
//创建一个List集合对象(多态)

List<String> list=new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("a");
System.out.println(list); //[a, b, c, d, a]

//public void add(int index,E element); 添加
list.add(3,"woaini"); //形参为给第几个位置添加什么字符串
System.out.println(list); //[a, b, c, woaini, d, a]

//public E remove(int index); 移除(返回被移除的元素)
String yuanlai1=list.remove(2); //形参是int型
System.out.println("被移除的是:"+yuanlai1); //输出字符串必须要用"+"符号
System.out.println(list); //[a, b, woaini, d, a]


//public E set(int index,E element); 替换(返回之前的元素)
String yuanlai2=list.set(1, "aa");
System.out.println("被替换的是:"+yuanlai2); //输出字符串必须要用"+"符号
System.out.println(list); //[a, aa, woaini, d, a]

//public E get(int index); 返回
String zhiding=list.get(4); //5就会导致"java.lang.IndexOutOfBoundsException"异常
System.out.println("指定的是:"+zhiding); //指定的是:a

}
}

代码结果如下:
[a, b, c, d, a]
[a, b, c, woaini, d, a]
被移除的是:c
[a, b, woaini, d, a]
被替换的是:b
[a, aa, woaini, d, a]
指定的是:a


二、ArrayList集合(实现类)
  它的方法和List定义的基本一致(基本被用于接口的实现类)!


三、LinkedList集合
  LinkedList集合的底层结构是链表结构,方便元素的增、删、添、首尾操作

方法:

  1. 除了和List接口中的方法(继承)+特有的方法;
  2. 特有(首尾操作)的方法:
    第一组:
    void addFirst(E e);
    void addLast(E e);
    第二组(返回移除的元素):
    E removeFirst();
    E removeLast();
    第三组(返回特定的元素):
    E getFirst();
    E getLast();
    第四组:
    E pop(); //弹出,删除集合中的第一个元素
    void push(E e);//推入,往集合中增加一个元素

举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.util.*;
public class Main extends Object{
public static void main(String[] args) {
LinkedList<String> list=new LinkedList<String>();

//使用父类的添加方法
list.add("123");
list.add("WWW");
list.add("12SW");
System.out.println(list); //[123, WWW, 12SW]
System.out.println("!!!!!!!!!!!");

//使用LinkedList的特定方法添加
list.addFirst("ASD");
list.addFirst("AHHAHAHA"); //[AHHAHAHA, ASD, 123, WWW, 12SW] 会不断地当第一个!!
System.out.println(list); //[AHHAHAHA, ASD, 123, WWW, 12SW]
System.out.println("!!!!!!!!!!!");

//删除元素
String shanchu=list.removeFirst(); //删除第一个AHHAHAHA
System.out.println(shanchu);
System.out.println(list); //[ASD, 123, WWW, 12SW]
System.out.println("!!!!!!!!!!!");

//获取元素
String get=list.getLast(); //获取最后一个元素
System.out.println(get); //12SW
System.out.println(list);
System.out.println("!!!!!!!!!!!");

//pop弹出
String pop=list.pop(); //弹出第一个元素
System.out.println(pop); //ASD
System.out.println(list);
System.out.println("!!!!!!!!!!!");

//push推入
list.push("MAMMAMAM");
System.out.println(list); //[MAMMAMAM, 123, WWW, 12SW]
System.out.println("!!!!!!!!!!!");

}
}

代码结果如下:
添加了三个元素:
[123, WWW, 12SW]
!!!!!!!!!!!

通过addFirst添加了第一个元素
[AHHAHAHA, ASD, 123, WWW, 12SW]
!!!!!!!!!!!

通过removeFirst第一个元素
AHHAHAHA
[ASD, 123, WWW, 12SW]
!!!!!!!!!!!

通过getLast获取最后一个元素
12SW
[ASD, 123, WWW, 12SW]
!!!!!!!!!!!

通过pop弹出第一个元素
ASD
[123, WWW, 12SW]
!!!!!!!!!!!

通过push推入第一个元
[MAMMAMAM, 123, WWW, 12SW]
!!!!!!!!!!!


四、Vector
  jdk1.2(现在是1.9)之后被ArrayList类取代。

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
,