java实例化list_java中List的⽤法和实例详解
List的⽤法
List包括List接⼝以及List接⼝的所有实现类。因为List接⼝实现了Collection接⼝,所以List接⼝拥有Collection接⼝提供的所有常⽤⽅法,⼜因为List是列表类型,所以List接⼝还提供了⼀些适合于⾃⾝的常⽤⽅法,如表1所⽰。
表1 List接⼝定义的常⽤⽅法及功能
从表1可以看出,List接⼝提供的适合于⾃⾝的常⽤⽅法均与索引有关,这是因为List集合为列表类型,以线性⽅式存储对象,可以通过对象的索引操作对象。
List接⼝的常⽤实现类有ArrayList和LinkedList,在使⽤List集合时,通常情况下声明为List类型,实例化时根据实际情况的需要,实例化为ArrayList或LinkedList,例如:
List l = new ArrayList();// 利⽤ArrayList类实例化List集合
List l2 = new LinkedList();// 利⽤LinkedList类实例化List集合
1.add(int index, Object obj)⽅法和set(int index, Object obj)⽅法的区别
在使⽤List集合时需要注意区分add(int index, Object obj)⽅法和set(int index, Object obj)⽅法,前者是向指定索引位置添加对象,⽽后者是修改指定索引位置的对象,例如执⾏下⾯的代码:
src\com\mwq\TestCollection.java关键代码:
public static void main(String[] args) {
String a = "A", b = "B", c = "C", d = "D", e = "E";
List list = new LinkedList();
list.add(a);
list.add(e);
list.add(d);
list.set(1, b);// 将索引位置为1的对象e修改为对象b
list.add(2, c);// 将对象c添加到索引位置为2的位置
Iterator it = list.iterator();
while (it.hasNext()) {
System.out.());
}
}
在控制台将输出如下信息:
B
C
D
因为List集合可以通过索引位置访问对象,所以还可以通过for循环遍历List集合,例如遍历上⾯代码中的List集合的代码如下:src\com\mwq\TestCollection.java关键代码:
for (int i = 0; i < list.size(); i++) {
System.out.(i));// 利⽤get(int index)⽅法获得指定索引位置的对象
}
src\com\mwq\TestCollection.java完整代码如下:
package com.mwq;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Iterator;
import java.util.List;
public class TestCollection {
public static void main(String[] args) {
System.out.println("开始:");
String a = "A", b = "B", c = "C", d = "D", e = "E";
List list = new LinkedList();
list.add(a);
list.add(e);
list.add(d);
list.set(1, b);// 将索引位置为1的对象e修改为对象b
list.add(2, c);// 将对象c添加到索引位置为2的位置
Iterator it = list.iterator();
while (it.hasNext()) {
System.out.());
}
// for (int i = 0; i < list.size(); i++) {
// System.out.(i));// 利⽤get(int index)⽅法获得指定索引位置的对象
// }
System.out.println("结束!");
}
2.indexOf(Object obj)⽅法和lastIndexOf(Object obj)⽅法的区别
在使⽤List集合时需要注意区分indexOf(Object obj)⽅法和lastIndexOf(Object obj)⽅法,前者是获得指
定对象的最⼩的索引位置,⽽后者是获得指定对象的最⼤的索引位置,前提条件是指定的对象在List集合中具有重复的对象,否则如果在List集合中有且仅有⼀个指定的对象,则通过这两个⽅法获得的索引位置是相同的,例如执⾏下⾯的代码:
src\com\mwq\TestCollection.java关键代码:
public static void main(String[] args) {
String a = "A", b = "B", c = "C", d = "D", repeat = "Repeat";
List list = new ArrayList();
list.add(a); // 索引位置为 0
list.add(repeat); // 索引位置为 1
list.add(b); // 索引位置为 2
list.add(repeat); // 索引位置为 3
list.add(c); // 索引位置为 4
list.add(repeat); // 索引位置为 5
list.add(d); // 索引位置为 6
System.out.println(list.indexOf(repeat));
System.out.println(list.lastIndexOf(repeat));
System.out.println(list.indexOf(b));
System.out.println(list.lastIndexOf(b));
}
src\com\mwq\TestCollection.java完整代码如下:
package com.mwq;
import java.util.ArrayList;
import java.util.List;
public class TestCollection {
public static void main(String[] args) {
System.out.println("开始:");
String a = "A", b = "B", c = "C", d = "D", repeat = "Repeat";
List list = new ArrayList();
list.add(a); // 索引位置为 0
list.add(repeat); // 索引位置为 1
list.add(b); // 索引位置为 2
list.add(repeat); // 索引位置为 3
list.add(c); // 索引位置为 4
list.add(repeat); // 索引位置为 5
list.add(d); // 索引位置为 6
System.out.println(list.indexOf(repeat));
System.out.println(list.lastIndexOf(repeat));
System.out.println(list.indexOf(b));
System.out.println(list.lastIndexOf(b));
实例化类和实例化对象System.out.println("结束!");
}
}
在控制台将输出如下信息:
1
5
2
2
3.subList(int fromIndex, int toIndex)⽅法
在使⽤subList(int fromIndex, int toIndex)⽅法截取现有List集合中的部分对象⽣成新的List集合时,需要注意的是,新⽣成的集合中包含起始索引位置代表的对象,但是不包含终⽌索引位置代表的对象,例如执⾏下⾯的代码:
src\com\mwq\TestCollection.java关键代码:
public static void main(String[] args) {
String a = "A", b = "B", c = "C", d = "D", e = "E";
List list = new ArrayList();
list.add(a); // 索引位置为 0
list.add(b); // 索引位置为 1
list.add(c); // 索引位置为 2
list.add(d); // 索引位置为 3
list.add(e); // 索引位置为 4
list = list.subList(1, 3);// 利⽤从索引位置 1 到 3 的对象重新⽣成⼀个List集合
for (int i = 0; i < list.size(); i++) {
System.out.(i));
}
}
src\com\mwq\TestCollection.java完整代码:
package com.mwq;
import java.util.ArrayList;
import java.util.List;
public class TestCollection {
public static void main(String[] args) {
System.out.println("开始:");
String a = "A", b = "B", c = "C", d = "D", e = "E";
List list = new ArrayList();
list.add(a); // 索引位置为 0
list.add(b); // 索引位置为 1
list.add(c); // 索引位置为 2
list.add(d); // 索引位置为 3
list.add(e); // 索引位置为 4
list = list.subList(1, 3);// 利⽤从索引位置 1 到 3 的对象重新⽣成⼀个List集合
for (int i = 0; i < list.size(); i++) {
System.out.(i));
}
System.out.println("结束!");
}
}
在控制台将输出如下信息:
B
C
list中可以添加任何对象,我可以给你举个例⼦:
class Person{
.....
}
上⾯定义了⼀个Person类,下⾯看好如何使⽤List
Person p1=new Person();
Person p2=new Person();
List list=new ArrayList();
list.add(p1);
list.add(p2);//这⾥是将对象加⼊到list中
for(int i=0;i
Person p=((i);//注意,这⾥⼀定要强制类型转换,因为List中取出的对象都是Object类型的,希望对你有所帮助}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论