1、Collection接口中的常用方法

  • add(E e):将原始e添加到集合中;
  • size(): 获取添加的元素的个数;
  • addAll(Collection c): 将Collection 集合中的数据添加到当前集合中
  • clear() : 清空集合中的数据元素
  • isEmpty() : 判断集合中是否为空 为空返回true
  • contains(Object obj) 是否包含obj , 如果是引用数据类型,在判断时会调用所在类的equals()方法
  • containAll(Collection coll) : 判断形参中的coll中所有的元素是否都包含
  • remove(Object obj) : 移出集合中的某个元素,在移出之前先判断是否存在,判断是否存在调用的是equals()方法
  • removeAll(Collection coll) : 从当前集合中移出coll中的所有元素
  • retainAll(Collection<?> c) 交集,获取当前集合和 c 集合的交集,并返回给当前集合。保留一样的,删除不一样的
  • equals(Object obj):要想返回true,需要当前集合和形参集合的元素都相同
  • hashCode(): 返回当前对象的哈希值
  • 集合可以转换为数组 toArray()
  • 拓展:数组转换成集合 。Arrays.asList();

    1. **
    2. *
    3. * Collection中的常用方法
    4. * @author 杨磊
    5. * @create 2021-09-28 9:16
    6. */
    7. public class CollectionTest {
    8. public static void main(String[] args) {
    9. test();
    10. }
    11. private static void test() {
    12. Collection coll = new ArrayList();
    13. //1、add(E e):将原始e添加到集合中;
    14. coll.add("aa");
    15. coll.add("bb");
    16. coll.add("cc");
    17. coll.add(11);
    18. //size(): 获取添加的元素的个数
    19. System.out.println(coll.size());
    20. // addAll(Collection c): 将Collection 集合中的数据添加到当前集合中
    21. Collection coll1 = new ArrayList();
    22. coll1.add("aa");
    23. coll1.add("bb");
    24. coll.addAll(coll1);
    25. System.out.println(coll.size());
    26. //clear() : 清空集合中的数据元素
    27. coll.clear();
    28. //isEmpty() : 判断集合中是否为空 为空返回true
    29. System.out.println(coll.isEmpty());
    30. // contains(Object obj) 是否包含obj ,
    31. // 如果是引用数据类型,在判断时会调用所在类的equals()方法
    32. System.out.println(coll.contains(11));
    33. //containAll(Collection coll) : 判断形参中的coll中所有的元素是否都包含
    34. Collection coll1 = new ArrayList();
    35. coll1.add("aa");
    36. coll1.add("bb");
    37. coll.addAll(coll1);
    38. System.out.println(coll.containsAll(coll1));
    39. //remove(Object obj) : 移出集合中的某个元素,在移出之前先判断是否存在,判断是否存在调用的是equals()方法
    40. //removeAll(Collection coll) : 从当前集合中移出coll中的所有元素
    41. // retainAll(Collection<?> c) 交集,获取当前集合和 c 集合的交集,并返回给当前集合。保留一样的,删除不一样的
    42. //equals(Object obj):要想返回true,需要当前集合和形参集合的元素都相同
    43. //hashCode(): 返回当前对象的哈希值
    44. //集合可以转换为数组
    45. //toArray():
    46. Object[] array = coll.toArray();
    47. for (Object o : array) {
    48. System.out.println(o);
    49. }
    50. //拓展:数组转换成集合
    51. //Arrays.asList();
    52. }
    53. }

    2、使用Iterator接口遍历集合元素

    2.1、使用hasNext() 和 next()方法配合使用

  • 集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前

    1. /**
    2. * @author 杨磊
    3. * @create 2021-09-28 10:11
    4. */
    5. public class IteratorTest {
    6. public static void main(String[] args) {
    7. test();
    8. }
    9. private static void test() {
    10. Collection coll = new ArrayList();
    11. //1、add(E e):将原始e添加到集合中;
    12. coll.add("aa");
    13. coll.add("bb");
    14. coll.add("cc");
    15. coll.add(11);
    16. Iterator iterator = coll.iterator();
    17. //方式一
    18. // System.out.println(iterator.next());
    19. // System.out.println(iterator.next());
    20. // System.out.println(iterator.next());
    21. // System.out.println(iterator.next());
    22. //方式二
    23. // for (int i = 0 ; i < coll.size() ; i ++){
    24. // System.out.println(iterator.next());
    25. // }
    26. //推荐 iterator.hasNext() 判断集合中是否还有元素
    27. while (iterator.hasNext()){
    28. System.out.println(iterator.next());
    29. }
    30. }
    31. }

    2.2、Iterator迭代器的执行原理

    image.png

    2.3、remove()方法的使用

    ```java import org.junit.Test;

import java.util.ArrayList; import java.util.Collection; import java.util.Iterator;

/**

  • 集合元素的遍历操作,使用迭代器Iterator接口
  • 1.内部的方法:hasNext()和 next()
  • 2.集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前。
  • 3.内部定义了remove(),可以在遍历的时候,删除集合中的元素。此方法不同于集合直接调用remove() */ public class IteratorTest {

    //测试Iterator中的remove()方法 @Test public void test3(){

    1. Collection coll = new ArrayList();
    2. coll.add(123);
    3. coll.add(456);
    4. coll.add(new Person("Jerry",20));
    5. coll.add(new String("Tom"));
    6. coll.add(false);
    7. //删除集合中”Tom”
    8. //如果还未调用next()或在上一次调用 next 方法之后已经调用了 remove 方法,
    9. // 再调用remove都会报IllegalStateException。
    10. Iterator iterator = coll.iterator();
    11. while(iterator.hasNext()){

    // iterator.remove();

    1. Object obj = iterator.next();
    2. if("Tom".equals(obj)){
    3. iterator.remove();

    // iterator.remove();

    1. }
    2. }
    3. //遍历集合
    4. iterator = coll.iterator();
    5. while(iterator.hasNext()){
    6. System.out.println(iterator.next());
    7. }

    } }

``` 注意:

  • Iterator可以删除集合的元素,但是是遍历过程中通过迭代器对象的remove方法,不是集合对象的remove方法。
  • 如果还未调用next()或在上一次调用next方法之后已经调用了remove方法,再调用remove都会报IllegalStateException