Java 集合框架之 List 的使用
List的概念介绍
在Java的集合框架中,List是其中一个非常重要和常用的容器类。它可以存储有序、可重复的数据集合,并且允许对其中的元素进行增删改查等操作,非常方便。List可以通过下标/索引的方式访问其中的元素,也可以通过迭代器对其中的元素进行遍历。
常用的List实现类有:ArrayList、LinkedList和Vector。其中,ArrayList是最常用的一种实现,而Vector用得较少,前两者的区别在于底层的存储结构不同。
List的基本用法
创建List实例
Java中创建List对象可以使用ArrayList
或 LinkedList
。
List<String> list1 = new ArrayList<>(); // 创建ArrayList实例
List<Integer> list2 = new LinkedList<>(); // 创建LinkedList实例
添加元素
List中添加元素最常用的方法是add
。例如list1.add("A");
将字符串"A"添加到list1中。
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
获取元素
List中获取元素的方法有很多,其中最常用的是根据下标/索引获取元素。list.get(i)
方法可以获取索引为i的元素。
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
System.out.println(list.get(0)); // 输出"A"
System.out.println(list.get(1)); // 输出"B"
System.out.println(list.get(2)); // 输出"C"
删除元素
可以使用remove
方法删除List中的元素。例如list.remove(1)
将删除索引为1的元素。
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.remove(1);
System.out.println(list.get(0)); // 输出"A"
System.out.println(list.get(1)); // 输出"C"
修改元素
可以使用set
方法修改List中的元素。例如list.set(1, "D")
将索引为1的元素修改为"D"。
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.set(1, "D");
System.out.println(list.get(0)); // 输出"A"
System.out.println(list.get(1)); // 输出"D"
遍历List
List可以使用for循环和迭代器遍历其中的元素。例如使用for循环遍历
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
for(String str: list) {
System.out.println(str);
}
输出结果为:
A
B
C
示例
示例一:字符串列表排序
以下代码给出了一个字符串List中的元素排序的例子。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SortExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
list.add("pear");
System.out.println("原始List: " + list);
Collections.sort(list);
System.out.println("升序排序后的List: " + list);
Collections.reverse(list);
System.out.println("降序排序后的List: " + list);
}
}
输出结果为:
原始List: [apple, banana, orange, pear]
升序排序后的List: [apple, banana, orange, pear]
降序排序后的List: [pear, orange, banana, apple]
示例二:字母猜猜猜游戏
以下代码给出了一个简单的猜字母游戏,其中用List存储了要猜的字母。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class GuessGame {
public static void main(String[] args) {
List<String> words = new ArrayList<>();
words.add("JAVASE");
words.add("SELENIUM");
words.add("PYTHON");
words.add("MYSQL");
words.add("ORACLE");
int index = (int) (Math.random() * words.size());
String wordToGuess = words.get(index);
int wordLength = wordToGuess.length();
List<Character> letters = new ArrayList<>();
for (int i = 0; i < wordLength; i++) {
letters.add(wordToGuess.charAt(i));
}
List<Character> progress = new ArrayList<>();
for (int i = 0; i < wordLength; i++) {
progress.add('_');
}
int remainingAttempts = 5;
Scanner scanner = new Scanner(System.in);
while (remainingAttempts > 0) {
String progressString = "";
for (Character character : progress) {
progressString += character;
}
System.out.println("请猜一个" + wordLength + "个字母的单词: " + progressString);
String guess = scanner.nextLine().toUpperCase();
if (guess.length() != 1) {
System.out.println("只能猜一个字母哦!");
continue;
}
Character letter = guess.charAt(0);
if (!Character.isLetter(letter)) {
System.out.println("只能猜字母哦!");
continue;
}
boolean found = false;
for (int i = 0; i < wordLength; i++) {
if (letter.equals(letters.get(i))) {
progress.set(i, letter);
found = true;
}
}
if (found) {
System.out.println("恭喜你猜对了!");
} else {
System.out.println("猜错了,再试一次吧!");
remainingAttempts--;
}
if (progress.contains('_')) {
System.out.println("你还有" + remainingAttempts + "次机会");
} else {
System.out.println("恭喜你猜对了!答案是:" + wordToGuess);
break;
}
}
if (remainingAttempts <= 0) {
System.out.println("你的机会用完了,闯关失败...");
}
}
}
输出结果为:
请猜一个7个字母的单词: _______
S
猜错了,再试一次吧!
你还有4次机会
请猜一个7个字母的单词: _______
J
恭喜你猜对了!
请猜一个7个字母的单词: J______
A
恭喜你猜对了!
请猜一个7个字母的单词: JA_____
V
恭喜你猜对了!
请猜一个7个字母的单词: JAV____
A
恭喜你猜对了!
请猜一个7个字母的单词: JAVA___
S
猜错了,再试一次吧!
你还有3次机会
请猜一个7个字母的单词: JAVA___
E
恭喜你猜对了!
请猜一个7个字母的单词: JAVA_E_
R
恭喜你猜对了!
请猜一个7个字母的单词: JAVAE_R
S
猜错了,再试一次吧!
你还有2次机会
请猜一个7个字母的单词: JAVAE_R
L
恭喜你猜对了!
请猜一个7个字母的单词: JAVAE_LR
I
恭喜你猜对了!
请猜一个7个字母的单词: JAVAE_LRI
F
猜错了,再试一次吧!
你还有1次机会
请猜一个7个字母的单词: JAVAE_LRI
M
猜错了,再试一次吧!
你还有0次机会
你的机会用完了,闯关失败...
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 集合框架之List 的使用(附小游戏练习) - Python技术站