【Java】——List集合

                                               【List集合】

java.util.List 接口 extends Collection接口

List接口的特点:

有序集合,存储元素和取出元素的顺序是一致的(存储123,取出123)

有索引,包含了一些带索引的方法

允许存储重复的元素

List接口中带索引的方法(特有)

// 创建一个list集合对象,多态
List<String> list = new ArrayList<>();
// 使用add方法往集合中添加元素
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("a");
// 打印集合
System.out.println(list);//[a,b,c,d,a] 不是重写了toString

public void add( int index, E element):将指定的元素,添加到该集合中的指定位置上。

// 在c和d之间添加一个itheima
list.add(3,"itheima"); // [a,b,c,itheima,d,a]

public E remove( int index ):移除列表中指定位置的元素,,返回的是被移除的元素。

// 移除元素
String removeE = list.remove(2);
System.out.println("被移除的元素:"+removeE); //被移除的元素:c
System.out.println(list); // [a,b,itheima,d,a]

public E set( int index, E element):用指定元素代替集合中指定位置的元素,返回值的更新前的元素。

// 把最后一个a,替换为A
String serE = list.set(4,"A");
System.out.println("被替换的元素"+setE);//被替换的元素:a
System.out.println(list); // [a,b,itheima,d,A]

public E get( int index):返回集合中指定的元素.

// list集合遍历有3中方式

// 使用普通的for循环
for (int i = 0; i < list.size(); i++){
    String s = list.get(i);
    System.out.println(s);
}

// 使用迭代器 
Iterator<String> it = list.iterator();
while(it.hasNext()){
    String s = it.next();
    System.out.println(s);
}

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

注意:操作索引的时候,一定要防止索引越界异常

IndexOutOfBoundesException:索引越界异常,集合会报
ArrayIndexOutOfBoundsException:数组索引越界异常
StringIndexOutOfBoundsException:字符串索引越界异常

【ArrayList集合】

java.util.ArrayList集合数据存储的结构是数组结构,元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList是最常用的集合。

许多程序员开发时非常随意地使用ArrayList完成任何需求,并不严谨,这用用法是不提倡的。


【LinkedList集合】

java.util.LinkedList集合 implements.List接口

特点:

  1. 底层是一个链表结构:查询慢,增删快
  2. 里边包含了大量操作首尾元素的方法

注意:使用LinkedList集合特有的方法,不能使用多态

方法:

// 创建LinkedList集合对象
LinkedList<String> linked = new LinkedList<>();

// 使用add方法往集合中添加元素
linked.add("a");
linked.add("d");
linked.add("c");
System.out.println(linked);// [a,b,c]

public void addFirst(E e):将指定元素插入此列表的开头。

linked.addFirst("www");
System.out.println(linked);// [www,a,b,c]

public void push(E e):将元素推入此列表所表示的堆栈

linked.push("www");
System.out.println(linked);// [www,a,b,c]

public void addLast(E e):将指定元素添加到此列表的结尾。

linked.addFirst("com");
System.out.println(linked);// [www,a,b,c,com]
linked.clear();
// 清空集合中的元素,在获取集合中的元素会抛出NoSuchElementException

public E getFrist():返回此列表的第一个元素

public E getLast():返回此列表的最后一个元素

public boolean isEmpty():如果列表不包含元素,则返回true

if(!linked.isEmpty()){
    String first = linked.getFirst();
    System.out.println(first);//a
    String last = linked.getLast();
    System.out.println(last);//c
}

public E removeFirst():移除并返回此列表的第一个元素

public E removeLast():移除并返回此列表的最后一个元素

public E pop():从此列表所表示的堆栈处弹出一个元素

// String first = linked.removeFirst();
String first = linked.pop();
System.out.println("被移除的定义一个元素:"+first);
String last = linked.removeLast();
System.out.println("被移除的最后一个元素:"+last);
System.out.println(linked);//[b]

【Vector集合】

Vector类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector的大小可以根据需要增大或缩小,以适应创建Vector后进行添加或移除项的操作。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值