JAVA集合List,Queue,Map(二)

一、List集合

List集合:元素有序,可重复的集合,每个元素都有对应的索引。

  1. List接口和ListIterator接口
  • List接口时Collection接口的子接口。
  • List book = new ArrayList(); books.remove(new A());//List会调用该A对象的equals()方法依次与集合元素进行比较,如果equals()方法以某个元素作为参数时返回true,List将会删除该元素。
//按照字符串从短到长排列
books.sort((o1,o2)->((String)o1.length()-(String)o2.length()));
//将每个字符串的长度作为集合的元素
books.replaceAll(ele->((String)ele).length());
  • List中提供了listIterator()方法,ListIterator接口继承了Iterator接口,提供了专门操作List的方法,ListIterator接口再Iterator接口基础上增加了如下方法:
    boolean hasPrevious():是否有上一个元素
    Object previous():返回上一个元素 void
    add(Object o):插入一个元素
package TreeCreate;

import java.awt.List;
import java.util.ArrayList;
import java.util.ListIterator;

public class ListIteratorTest {
	public static void main(String[] args) {
		String[] books = {"Hello","Bonjour"};
		ArrayList bookList = new ArrayList();
		for(int i = 0; i < books.length; i++) {
			bookList.add(books[i]);
		}
		ListIterator lit = bookList.listIterator();
		while(lit.hasNext()) {
			System.out.println(lit.next());
			lit.add("-----");
		}
		System.out.println("下面开始反向迭代");
		while(lit.hasPrevious()) {
			System.out.println(lit.previous());
		}
	}
}

运行结果:
在这里插入图片描述
2. ArrayList和Vector实现类
ArrayList和Vector是List类的两个经典实现。它们封装了一个动态的、允许再分配的Object[]数组。ArrayList或Vector对象使用initialCapacity参数来设置该数组的长度,当添加元素超过数组长度时,它们的initialCapacity会自动增加。
ArrayList线程是不安全的,当多个线程访问同一个ArrayList集合时,如果有超过一个线程修改了ArrayList集合,则程序员需要手动保证集合的同步性。
3.固定长度的List
asLIst()方法:将一个数组或指定个数的对象转换成一个List集合。这个List集合是Arrays的内部类ArrayList的实例。
Arrays.ArrayList是一个固定长度的List集合,只能遍历该集合元素,不可以增加、删除集合中的元素。
List fixedList = Arrays.asList(“hello”,“Bonjour”);

猜你喜欢

转载自blog.csdn.net/weixin_43321444/article/details/88861957
今日推荐