1. List接口的常用方法
List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根据元素索引来操 作集合的特有方法,如下:
public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上。
public E get(int index) :返回集合中指定位置的元素。
public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
实例1:
public class ListDemo {
public static void main(String[] args) {
// 创建List集合对象
List<String> list = new ArrayList<String>();
// 往尾部添加指定元素
list.add("图图");
list.add("小美");
list.add("不高兴");
System.out.println(list);
// add(int index,String s) 往指定位置添加
list.add(1,"没头脑");
System.out.println(list);
// String remove(int index) 删除指定位置元素 返回被删除元素
// 删除索引位置为2的元素
System.out.println("删除索引位置为2的元素");
System.out.println("list.remove(2)");
System.out.println(list);
// String set(int index,String s)
// 在指定位置 进行 元素替代(改)
// 修改指定位置元素
list.set(, "三毛");
System.out.println(list);
//增强for循环遍历集合
for (String string : list) {
System.out.println(string);
}
}
}
2.List的子类
2.1 ArrayList集合的使用和常见方法
ArrayList是实现List接口的,底层采用数组实现。
ArrayList 实现了Cloneable接口,即覆盖了函数clone(),能被克隆。
ArrayList 实现java.io.Serializable接口,这意味着ArrayList支持序列化,能通过序列化去传输。
array.add(object);//添加一个元素
array.get(index);//取出集合中的元素,在get方法的参数中,写入索引。
array.size();//返回集合的长度,也就是存储元素的个数。
array.set(object);//设置一个元素
array.remove();//移除一个元素
实例2:
public class ArrayListDemo {
public static void main(String[] args){
ArrayList<String> obj= new ArrayList<String>();
//添加元素
obj.add("abc");
obj.add("def");
obj.add("def");
obj.add("ghi");
obj.add("def");
obj.add("hij");
obj.add("jkol");
System.out.println("当前的集合中的元素为:");
//遍历
for(int i = 0;i < obj.size(); i++)
{
System.out.print(obj.get(i)+" ");
}
System.out.println();
int count = 0;
for(int i = 0;i < obj.size();i++)
{
if(obj.get(i).equals("def")){
count++;
}
}
System.out.println("def一共出现了"+count+"次");
System.out.println("开始删除集合中的def字符串,请稍候...");
for(int i = 0;i<obj.size();i++)
{
if(obj.get(i).equals("def")){
obj.remove(i);
i-=1;//remove方法会改变ArrayList的索引,需要重新扫描该位置的元素,以免漏掉
}
}
System.out.println("当前的集合中的元素为:");
for(int i = 0;i<obj.size();i++)
{
System.out.print(obj.get(i)+" ");
}
}
}
结果为:
当前的集合中的元素为:
abc def def ghi def hij jkol
def一共出现了3次
开始删除集合中的def字符串,请稍候...
当前的集合中的元素为:
abc ghi hij jkol
2.2 LinkedList集合的使用和常见方法
public void addFirst(E e) :将指定元素插入此列表的开头。
public void addLast(E e) :将指定元素添加到此列表的结尾。
public E getFirst() :返回此列表的第一个元素。
public E getLast() :返回此列表的最后一个元素。
public E removeFirst() :移除并返回此列表的第一个元素。
public E removeLast() :移除并返回此列表的最后一个元素。
public E pop() :从此列表所表示的堆栈处弹出一个元素。
public void push(E e) :将元素推入此列表所表示的堆栈。
public boolean isEmpty() :如果列表不包含元素,则返回true。
实例3::
public class LinkedListDemo {
public static void main(String[] args) {
LinkedList<String> link = new LinkedList<String>();
//添加元素
link.addFirst("abc1");
link.addFirst("abc2");
link.addFirst("abc3");
System.out.println(link);
// 获取元素
System.out.println(link.getFirst());
System.out.println(link.getLast());
// 删除元素
System.out.println(link.removeFirst());
System.out.println(link.removeLast());
while (!link.isEmpty()) {
//判断集合是否为空
System.out.println(link.pop());
//弹出集合中的栈顶元素
}
System.out.println(link);
}
}
结果为:
[abc3, abc2, abc1]
abc3
abc1
abc3
abc1
abc2