在 Java 中,每一种基本数据类型都有一个与之对应的包装类。包装类用于将基本数据类型的值封装在一个对象中。这在需要对象而不是基本数据类型的情况下非常有用,例如在集合框架中。
byte
-> Byte
short
-> Short
int
-> Integer
long
-> Long
float
-> Float
double
-> Double
char
-> Character
boolean
-> Boolean
Java 5 引入了自动装箱(autoboxing)和自动拆箱(unboxing),使得基本数据类型和对应的包装类之间的转换更加便捷。
int a = 10;
Integer aObj = a; // 自动装箱
Integer bObj = 20;
int b = bObj; // 自动拆箱
包装类提供了许多有用的方法,如解析字符串、比较值等。
Integer.parseInt(String s)
:将字符串解析为整数。int num = Integer.parseInt("123");
Integer.valueOf(String s)
:将字符串转换为 Integer
对象。Integer numObj = Integer.valueOf("123");
Integer.compare(int x, int y)
:比较两个整数。int result = Integer.compare(10, 20); // result < 0
迭代器(Iterator)是一个设计模式,用于逐一访问集合对象中的元素,而不暴露其内部结构。Java 提供了 Iterator
接口,用于遍历集合。
boolean hasNext()
:如果有更多元素可迭代,则返回 true
。E next()
:返回下一个元素。void remove()
:移除迭代器返回的最后一个元素(可选操作)。import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
}
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class RemoveElementExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
if (element.equals("Banana")) {
iterator.remove();
}
}
System.out.println(list); // Output: [Apple, Cherry]
}
}
结合包装类与迭代器,以下是一个遍历并处理整数列表的示例:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class WrapperIteratorExample {
public static void main(String[] args) {
List<Integer> intList = new ArrayList<>();
intList.add(10);
intList.add(20);
intList.add(30);
intList.add(40);
// 遍历列表并打印每个元素的平方
Iterator<Integer> iterator = intList.iterator();
while (iterator.hasNext()) {
Integer number = iterator.next();
System.out.println("Number: " + number + ", Square: " + (number * number));
}
// 使用迭代器移除所有小于25的元素
iterator = intList.iterator();
while (iterator.hasNext()) {
Integer number = iterator.next();
if (number < 25) {
iterator.remove();
}
}
System.out.println("Filtered List: " + intList); // Output: [30, 40]
}
}
这个示例展示了如何使用包装类将基本数据类型封装成对象,以及如何使用迭代器遍历和操作集合。
原文链接:codingdict.net