在 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 numObj = Integer.valueOf("123");
Integer.compare(int x, int y)
int result = Integer.compare(10, 20); // result < 0
迭代器(Iterator)是一个设计模式,用于逐一访问集合对象中的元素,而不暴露其内部结构。Java 提供了 Iterator 接口,用于遍历集合。
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