list
Java中的List是一个接口,表示元素按特定顺序排列的集合。它是Java集合框架中最常用的接口之一,提供了一些常用的方法来操作元素。
List接口有多个实现类,常见的有ArrayList和LinkedList。ArrayList是基于数组实现的,支持快速随机访问和元素的插入、删除操作比较高效;而LinkedList是基于链表实现的,对于插入和删除操作更加高效,但随机访问的性能较差。
下面是一些List接口提供的常用方法:
-
添加元素:
- add(E element):将元素添加到列表的末尾。
- add(int index, E element):将元素插入到指定索引位置。
-
获取元素:
- get(int index):获取指定索引位置的元素。
- indexOf(Object o):返回第一个匹配元素的索引。
- lastIndexOf(Object o):返回最后一个匹配元素的索引。
-
删除元素:
- remove(int index):删除指定索引位置的元素。
- remove(Object o):删除第一个匹配的元素。
-
修改元素:
- set(int index, E element):将指定索引位置的元素替换为新元素。
-
列表信息:
- size():返回列表中的元素个数。
- isEmpty():判断列表是否为空。
-
遍历列表:
- 使用for循环或者迭代器遍历List中的元素。
除了上述常用的方法,List还继承自Collection接口,因此也包含Collection接口中的一些方法,如集合的迭代、判断是否包含某个元素等。
需要注意的是,List是一个有序集合,允许元素重复。通过索引操作可以访问列表中的元素,索引从0开始,范围是0到size()-1。
list集合练习
1.定义一个Collection接口类型的变量,引用一个List集合的实现类,实现添加单个元素,添加另一个集合,删除元素,判断集合中是否包含一个元素,判断是否为空,清除集合,返回集合里元素的个数等常用操作。
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class CollectionExample {
public static void main(String[] args) {
// 定义Collection接口类型的变量,引用一个List集合的实现类
Collection<String> collection = new ArrayList<>();
// 添加单个元素
collection.add("Element 1");
// 添加另一个集合
List<String> anotherList = new ArrayList<>();
anotherList.add("Element 2");
anotherList.add("Element 3");
collection.addAll(anotherList);
// 删除元素
collection.remove("Element 1");
// 判断集合中是否包含一个元素
boolean containsElement = collection.contains("Element 2");
System.out.println("集合中是否包含元素 'Element 2': " + containsElement);
// 判断集合是否为空
boolean isEmpty = collection.isEmpty();
System.out.println("集合是否为空: " + isEmpty);
// 清除集合
collection.clear();
// 返回集合里元素的个数
int size = collection.size();
System.out.println("集合的元素个数: " + size);
}
}
2.创建ArrayList实例化对象,添加10个以上的元素,在2号位插入一个元素,获得5号位元素,删除6号位元素,修改7号位的元素;
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
// 创建ArrayList实例化对象
ArrayList<String> arrayList = new ArrayList<>();
// 添加10个以上的元素
arrayList.add("Element 1");
arrayList.add("Element 2");
arrayList.add("Element 3");
arrayList.add("Element 4");
arrayList.add("Element 5");
arrayList.add("Element 6");
arrayList.add("Element 7");
arrayList.add("Element 8");
arrayList.add("Element 9");
arrayList.add("Element 10");
// 在2号位插入一个元素
arrayList.add(2, "Inserted Element");
// 获得5号位元素
String elementAt5 = arrayList.get(5);
System.out.println("5号位元素:" + elementAt5);
// 删除6号位元素
arrayList.remove(6);
// 修改7号位的元素
arrayList.set(7, "Modified Element");
// 打印ArrayList的内容
System.out.println("ArrayList内容:" + arrayList);
}
}
3.
1)封装一个新闻类,包含标题和内容属性,提供get、set方法,重写toString方法,打印对象时只打印标题;(10分)
2)只提供一个带参数的构造器,实例化对象时,只初始化标题;并且实例化两个对象:
新闻一:中国多地遭雾霾笼罩空气质量再成热议话题
新闻二:春节临近北京“卖房热”
3)将新闻对象添加到ArrayList集合中,并且使用ListIterator倒序遍历;
4)在遍历集合过程中,对新闻标题进行处理,超过15字的只保留前14个,然后在后边加“…”
5)在控制台打印遍历出经过处理的新闻标题
import java.util.ArrayList;
import java.util.ListIterator;
public class News {
private String title;
private String content;
public News(String title, String content) {
this.title = title;
this.content = content;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
@Override
public String toString() {
return title;
}
public static void main(String[] args) {
// 创建新闻对象
News news1 = new News("中国多地遭雾霾笼罩空气质量再成热议话题", "新闻一的内容");
News news2 = new News("春节临近北京“卖房热”", "新闻二的内容");
// 创建ArrayList集合
ArrayList<News> newsList = new ArrayList<>();
// 将新闻对象添加到ArrayList集合
newsList.add(news1);
newsList.add(news2);
// 使用ListIterator倒序遍历集合
ListIterator<News> iterator = newsList.listIterator(newsList.size());
while (iterator.hasPrevious()) {
// 获取新闻对象
News news = iterator.previous();
// 对新闻标题进行处理
String processedTitle = news.getTitle();
if (processedTitle.length() > 15) {
processedTitle = processedTitle.substring(0, 14) + "...";
}
// 打印处理后的新闻标题
System.out.println(processedTitle);
}
}
}
4.创建一个List集合的对象,添加几个数字,反转对象中元素的顺序;根据元素的自然顺序排序;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
// 创建List集合对象
List<Integer> numbers = new ArrayList<>();
// 添加数字
numbers.add(5);
numbers.add(2);
numbers.add(9);
numbers.add(1);
numbers.add(7);
// 反转元素顺序
Collections.reverse(numbers);
// 打印反转后的元素
System.out.println("反转后的元素:" + numbers);
// 根据自然顺序排序
Collections.sort(numbers);
// 打印排序后的元素
System.out.println("排序后的元素:" + numbers);
}
}
5.创建一个List集合的对象,添加几个字符串,反转对象中元素的顺序;根据元素的自然顺序排序;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
// 创建List集合对象
List<String> strings = new ArrayList<>();
// 添加字符串
strings.add("Apple");
strings.add("Banana");
strings.add("Orange");
strings.add("Grapes");
strings.add("Mango");
// 反转元素顺序
Collections.reverse(strings);
// 打印反转后的元素
System.out.println("反转后的元素:" + strings);
// 根据自然顺序排序
Collections.sort(strings);
// 打印排序后的元素
System.out.println("排序后的元素:" + strings);
}
}
6.创建一个List集合的对象,添加几条数据,将1号位和2号位交换;获得最大值,最小值;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
// 创建List集合对象
List<Integer> numbers = new ArrayList<>();
// 添加数据
numbers.add(5);
numbers.add(2);
numbers.add(9);
numbers.add(1);
numbers.add(7);
// 交换1号位和2号位的元素
Collections.swap(numbers, 1, 2);
// 打印交换后的元素
System.out.println("交换后的元素:" + numbers);
// 获取最大值
Integer max = Collections.max(numbers);
System.out.println("最大值:" + max);
// 获取最小值
Integer min = Collections.min(numbers);
System.out.println("最小值:" + min);
}
}