Collection将集合分为两类:List集合以及Set集合,本文先介绍List集合,下片再介绍Set集合。
List接口的特点:
1.存储有序,例如:存元素的顺序是11、22、33。那么集合中,元素的存储就
是按照11、22、33的顺序完成的)
2.可以重复
3.可以存储Null值
4.部分自己和线程安全,部分不安全,如:ArrayList,Vector
5.有索引,针对每个元素能够方便的查询和修改
6.判断元素是否重复依赖于equals方法:如果元素是系统类,不需要重写equals方法,如果是自定义类,就需要我们重写equals方法
List子接口的定义:
public interface List extends Collection
List接口常用的子类:ArrayList(数组),LinkedList(双向链表结构)
List接口的常用方法:
1.add(int index,E element) add(int index,Collection<? extends E> c)
public class myList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add(0,"小白");
list.add(3,"小红");
for (String l: list
) {
System.out.println(l);
}
}
}
复制代码
输出结果:
2.remove(Object o),remove(int index)
从列表中删除指定元素的第一个匹配项,从列表中删除指定位置的元素。
public class myList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add(0,"小白");
list.add(3,"小红");
list.remove(0);
list.remove("小红");
for (String l: list) {
System.out.println(l);
}
}
}
复制代码
输出结果:
3.contain(Object o)
如果此列表中包含指定元素,则返回true
public class myList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add(0,"小白");
list.add(3,"小红");
for (String l: list) {
System.out.println(l);
}
System.out.println(list.contains("张三"));
System.out.println(list.contains("小黑"));
}
}
复制代码
4.indexOf(Object o)
返回此列表中第一次出现的指定元素的索引,如果此列表不包含该元素,则返回-1。
public class myList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add(0,"小白");
list.add(3,"小红");
/* for (String l: list) {
System.out.println(l);
}*/
int i1 = list.indexOf("小白");
int i2 = list.indexOf("小蓝");
System.out.println(i1);
System.out.println(i2);
}
}
复制代码
5.iterator()
以适当的顺序返回列表中的元素。
public class myList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add(0,"小白");
list.add(3,"小红");
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
String string = iterator.next();
System.out.println(string);
}
}
}
复制代码
6.set(int index , E element)
用指定的元素替换此列表中指定位置的元素(可选操作)。
public class myList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add(0,"小白");
list.add(3,"小红");
list.set(3,"小黑");
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
String string = iterator.next();
System.out.println(string);
}
}
}
复制代码
7.toArray()
以适当的顺序(从第一个元素到最后一个元素)返回包含此列表中所有元素的数组。
public class myList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add(0,"小白");
list.add(3,"小红");
list.set(3,"小黑");
Object[] objects = list.toArray();
//Arrays包含用于操作数组的各种方法(例如排序和搜索)。
// 返回指定数组内容的字符串表示形式。
System.out.println(Arrays.toString(objects));
}
}
复制代码
8.toArray(T[ ] a)
以适当的顺序返回包含此列表中所有元素的数组(从第一个元素到最后一个元素); 返回数组的运行时类型是指定数组的运行时类型。 这个泛型在确定的时候必须是list中元素类型的父类或本身.
public class myList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add(0,"小白");
list.add(3,"小红");
list.set(3,"小黑");
String[] strings = list.toArray(new String[6]);
System.out.println(Arrays.toString(strings));
}
}
复制代码
希望此文对你有帮助~