Java 包装类:原始数据类型与迭代器

Java Iterator

Iterator 接口提供了一种迭代集合的方法,即顺序访问集合中的每个元素。它支持 hasNext()next() 方法,用于检查是否存在下一个元素以及获取下一个元素。

获取 Iterator

可以使用集合的 iterator() 方法获取 Iterator 实例:

1// 导入 ArrayList 类和 Iterator 类 2import java.util.ArrayList; 3import java.util.Iterator; 4 5public class Main { 6 public static void main(String[] args) { 7 // 创建一个 ArrayList 8 ArrayList<String> cars = new ArrayList<>(); 9 cars.add("Volvo"); 10 cars.add("BMW"); 11 cars.add("Ford"); 12 cars.add("Mazda"); 13 14 // 获取 Iterator 15 Iterator<String> it = cars.iterator(); 16 } 17}

遍历集合

可以使用 hasNext()next() 方法遍历集合:

1while (it.hasNext()) { 2 String car = it.next(); 3 System.out.println(car); 4}

删除元素

可以使用 Iteratorremove() 方法从集合中删除元素:

1while (it.hasNext()) { 2 String car = it.next(); 3 if (car.equals("Volvo")) { 4 it.remove(); 5 } 6}

注意: 在使用 Iterator 删除元素时,不要使用集合的 for 循环或 for-each 循环,因为这会导致集合大小发生变化,并可能导致 Iterator 出现异常。

Iterator 是 Java 中用于遍历集合的强大工具。它提供了灵活的迭代方式,并支持元素的删除。

Iterator 的优势:

  • 灵活的迭代方式
  • 支持元素的删除
  • 可用于各种集合

Iterator 的劣势:

  • 使用时需要注意集合大小变化
  • 可能比 for 循环或 for-each 循环效率低

建议:

  • 当需要灵活的迭代方式或需要删除元素时,使用 Iterator
  • 当只需要遍历集合并读取元素时,可以使用 for 循环或 for-each 循环。

Java 包装类

Java 包装类为原始数据类型(如 intboolean 等)提供了对象表示形式。这使得将原始数据类型与需要对象的 API 一起使用成为可能。

原始类型与包装类

下表列出了 Java 中的原始类型及其对应的包装类:

原始类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter

使用包装类

创建包装对象

可以使用包装类的构造函数创建包装对象,并将原始值作为参数传递:

1Integer myInt = new Integer(5); 2Double myDouble = new Double(5.99); 3Character myChar = new Character('A');

获取值

可以使用包装类的 xxxValue() 方法获取其对应的原始值:

1int intValue = myInt.intValue(); 2double doubleValue = myDouble.doubleValue(); 3char charValue = myChar.charValue();

其他方法

包装类还提供了其他一些方法,例如:

  • toString(): 将包装对象转换为字符串
  • equals(): 比较两个包装对象是否相等
  • hashCode(): 返回包装对象的哈希码

自动装箱和拆箱

从 Java 5 开始,自动装箱和拆箱允许将原始类型隐式转换为包装类,反之亦然。

例如:

1// 自动装箱 2int x = 10; 3Integer y = x; // 隐式将 int 转换为 Integer 4 5// 拆箱 6Integer z = 20; 7int w = z; // 隐式将 Integer 转换为 int

Java 包装类提供了将原始数据类型用作对象的方法。它们在许多场景下都很有用,例如:

  • 将原始数据类型与需要对象的 API 一起使用
  • 将原始数据类型存储在集合中
  • 使用包装类提供的额外方法

建议:

  • 在需要将原始数据类型用作对象时使用包装类。
  • 了解自动装箱和拆箱机制,以便更好地使用包装类。

注意:

  • 虽然自动装箱和拆箱很方便,但它们可能会导致一些性能问题。
  • 在某些情况下,例如需要精确控制内存使用时,最好避免使用自动装箱和拆箱。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

Java日期时间API系列31

  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前

java 数据结构(十二):Collections工具类的使用

Collections工具类1.作用:操作Collection和Map的工具类2.常用方法:reverse(List):反转List中元素的顺序shuffle(List):对List集合元素进行随机排序sort(List):根据元素的自然顺序对指定List集合元素升序排序sort(List,Comparator)

Python+Selenium自动化篇

本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子。0.元素定位方法主要有:id定位:find\_element\_by\_id('')name定位:find\_element\_by\_name('')class定位:find\_element\_by\_class\_name(''

Iterator to list的三种方法

Iteratortolist的三种方法简介集合的变量少不了使用Iterator,从集合Iterator非常简单,直接调用Iterator方法就可以了。那么如何从Iterator反过来生成List呢?今天教大家三个方法。使用while最简单最基本的逻辑就是使用while来遍历这个Iterator,在遍历的过程中将I

System、Runtime、Date、Calendar、Math

System类中的方法和属性都是静态的。out:标准输出,默认是控制台in:标准输入,默认是键盘获取系统属性信息:PropertiesgetProperties();因为Properties是Hashtable的,也就是Map集合的子类对象,那么可以通过map的方法取出集合中的元素,该集合中存储都是字符串,没有泛型定义。setPr