image.png
    image.png
    image.png

    1. package com.atguigu.java1;
    2. import org.junit.Test;
    3. import java.util.ArrayList;
    4. import java.util.Collection;
    5. import java.util.Iterator;
    6. /**
    7. * 集合元素的遍历操作,使用迭代器Iterator接口
    8. * 1.内部的方法:hasNext() 和 next()
    9. * 2.集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前
    10. * 3.内部定义了remove(),可以在遍历的时候,删除集合中的元素。此方法不同于集合直接调用remove()
    11. *
    12. *
    13. * @author Dxkstart
    14. * @create 2021-05-19 15:30
    15. */
    16. public class IteratorTest {
    17. @Test
    18. public void test() {
    19. Collection coll = new ArrayList();
    20. coll.add("AA");
    21. coll.add(123);
    22. coll.add(new String("Tom"));
    23. coll.add(new Person("Jerry", 20));
    24. coll.add(false);
    25. Iterator iterator = coll.iterator();
    26. //方式一:
    27. // System.out.println(iterator.next());//按顺序一个一个输出
    28. // System.out.println(iterator.next());
    29. // System.out.println(iterator.next());
    30. // System.out.println(iterator.next());
    31. //方式二:不推荐
    32. // for(int i = 0;i<coll.size();i++){
    33. // System.out.println(iterator.next());
    34. // }
    35. //方式三:推荐
    36. while (iterator.hasNext()) {
    37. //next():①指针下移 ②将下移以后集合位置上的元素返回
    38. System.out.println(iterator.next());
    39. }
    40. }
    41. @Test
    42. public void test2() {
    43. Collection coll = new ArrayList();
    44. coll.add("AA");
    45. coll.add(123);
    46. coll.add(new String("Tom"));
    47. coll.add(new Person("Jerry", 20));
    48. coll.add(false);
    49. //错误方式一:
    50. Iterator iterator = coll.iterator();
    51. // while((iterator.next()) != null){
    52. // System.out.println(iterator.next());
    53. // }
    54. //错误方式三:
    55. //集合对象每次调用iterator()方法都得到一个全新的迭代器对象,
    56. // 默认游标都在集合的第一个元素之前。
    57. // while(coll.iterator().hasNext()){
    58. // System.out.println(coll.iterator().next());
    59. // }
    60. }
    61. //测试Iterator中的remove()
    62. @Test
    63. public void test3() {
    64. Collection coll = new ArrayList();
    65. coll.add("AA");
    66. coll.add(123);
    67. coll.add(new String("Tom"));
    68. coll.add(new Person("Jerry", 20));
    69. coll.add(false);
    70. //删除集合中的"Tom"
    71. Iterator iterator = coll.iterator();
    72. while(iterator.hasNext()){
    73. Object obj = iterator.next();
    74. if("Tom".equals(obj)){
    75. iterator.remove();
    76. }
    77. }
    78. System.out.println("****");
    79. iterator= coll.iterator();
    80. while (iterator.hasNext()){
    81. System.out.println(iterator.next());
    82. }
    83. }
    84. }

    image.png

    1. package com.atguigu.java1;
    2. import org.junit.Test;
    3. import java.util.ArrayList;
    4. import java.util.Collection;
    5. /**
    6. * JDK 5.0 新增了foreach循环,用于遍历集合、数组
    7. *
    8. * @author Dxkstart
    9. * @create 2021-05-19 17:08
    10. */
    11. public class ForTest {
    12. @Test
    13. public void test1(){
    14. Collection coll = new ArrayList();
    15. coll.add("AA");
    16. coll.add(123);
    17. coll.add(new String("Tom"));
    18. coll.add(new Person("Jerry", 20));
    19. coll.add(false);
    20. //for(集合元素的类型 局部变量 :集合对象)
    21. //内部仍然调用了迭代器。
    22. for(Object obj : coll){
    23. System.out.println(obj);
    24. }
    25. }
    26. @Test
    27. public void test2(){
    28. int[] arr = new int[]{1,2,3,4,5,6,7};
    29. //for(数组元素的类型 局部变量 :数组对象)
    30. // for(Object obj){
    31. for(int i : arr){
    32. System.out.println(i);
    33. }
    34. }
    35. //练习题
    36. @Test
    37. public void test3(){
    38. String[] arr = {"MM", "MM", "MM", "MM", "MM"};
    39. // //方式一:普通for赋值
    40. // for(int i = 0;i<arr.length;i++){
    41. // arr[i] = "GG";
    42. // }
    43. //
    44. // for(int i = 0;i<arr.length;i++){
    45. // System.out.println(arr[i]);//"GG"
    46. // }
    47. //方式二:增强for赋值
    48. for(String str : arr){
    49. str = "GG";
    50. }
    51. for(String str : arr){
    52. System.out.println(str);//"MM"
    53. }
    54. }
    55. }