List接口和常用方法
简介
list接口是Collection接口的子接口
- List集合类中元素是有序的(即添加顺序和取出顺序一致)、且可重复
- List集合中的每个元素都有其对应的顺序索引,即仅支持索引
- List容器中的元素都对应一个整数的序号记录在容器中的位置,可以根据序号存取元素
- JDK API中的List接口实现类有AbstractList , AbstractSequentialList , ArrayList , AttributeList , CopyOnWriteArrayList , LinkedList , RoleList , RoleUnresolvedList , Stack , Vector
public class List_ {
@SuppressWarnings({"all"})
public static void main(String[] args) {
List list = new ArrayList();
list.add("rick");
list.add("jack");
list.add("gelnn");
list.add("mike");
list.add("mary");
System.out.println(list); //1.List集合类中元素有序存取顺序一致,且可以元素重复
list.add("rick");
System.out.println(list);
//2.List集合中的每个元素都有其对应的顺序索引(仅支持索引)
System.out.println(list.get(0));
}
}
常用方法
常用方法示例
public class ListMethod {
public static void main(String[] args) {
List list = new ArrayList();
list.add("张三");
list.add("李四");
list.add(1,"王五");
System.out.println(list);
List list1=new ArrayList();
list1.add("jack");
list1.add("rick");
list1.addAll(1,list);
System.out.println(list1);
// 返回obj在集合中首次出现的位置
System.out.println(list1.indexOf("李四"));
list1.add(4,"李四");
// 返回obj在集合中最后一次出现的位置
System.out.println(list1.lastIndexOf("李四"));
list.remove(0); // 删除索引为0的元素
System.out.println(list);
list.set(0,"张三"); // 替换指定索引的元素
System.out.println(list);
List list2 = list1.subList(1,5); //返回的子集合是[1,5)范围内的元素
System.out.println(list2);
}
}
List的三种遍历方式
List array = new ArrayList();
for (int i=0;i<12;i++){
array.add("hello"+i);
}
// 使用Iterator
System.out.println("使用迭代器");
Iterator it=array.iterator();
while (it.hasNext()) {
Object next = it.next();
System.out.println(next);
}
//2.使用增强for
System.out.println("使用增强for");
for (Object o :array) {
System.out.println(o);
}
//3.使用普通for
System.out.println("使用普通for");
for (int i = 0; i < array.size(); i++) {
Object obj=array.get(i);
System.out.println(obj);
排序练习
public class BookMenu {
public static void main(String[] args) {
List arrayList = new ArrayList();
arrayList.add(new Book("资本论", "卡尔·马克思", 9.9));
arrayList.add(new Book("毛选", "人民出版社", 11));
arrayList.add(new Book("马克思主义基本原理概论", "高等教育出版社", 10));
// 遍历
for (Object o :arrayList) {
System.out.println(o);
}
//
sort(arrayList);
System.out.println("按价格排序后");
for (Object o :arrayList) {
System.out.println(o);
}
}
//对集合进行排序
public static void sort(List list){
for (int i = 0; i < list.size()-1; i++) {
for (int j = 0; j < list.size() - 1 - i; j++) {
Book book1= (Book) list.get(j);
Book book2= (Book) list.get(j+1);
if (book1.getPrice()> book2.getPrice()){
list.set(j,book2);
list.set(j+1,book1);
}
}
}
}
}