Collection接口中声明的方法

Collection方法

1~13

 @Test
   public void test1(){
       Collection coll = new ArrayList();
       coll.add(123);
       coll.add(456);
       coll.add(new String("Tom"));
       coll.add(false);
       coll.add(new Person("Jerry",20));
       // 1.contains(Object obj):判断当前集合中是否包含obj
       // 我们在判断时会调用obj对象所在类的equals()
       boolean contains = coll.contains(123);
       System.out.println(contains); // true
       System.out.println(coll.contains("Tom")); // true
       System.out.println(coll.contains(new Person("Jerry",20))); // Person类中没重写equals()时为:false;重写equals()后为true
       
       // 2.containsAll(Collection coll1):判断形参coll1中的所有元素是否都存在于当前集合中。
       Collection coll1 = Arrays.asList(123,456);
       boolean b = coll.containsAll(coll1);
       System.out.println(b); // true
       
  }

 

 @Test
   public void test2(){
       // 3.remove(Object obj):从当前集合中移除obj元素。
       Collection coll = new ArrayList();
       coll.add(123);
       coll.add(456);
       coll.add(new String("Tom"));
       coll.add(false);
       coll.add(new Person("Jerry",20));

       coll.remove(123);
       System.out.println(coll); // [456, Tom, false, Person{name='Jerry', age=20}]

       coll.remove(new Person("Jerry",20));
       System.out.println(coll); // [456, Tom, false]

       // 4.removeAll(Collection coll1):差集:从当前集合中移除coll1中所有的元素
       Collection coll1 = Arrays.asList(123,456);
       coll.removeAll(coll1);
       System.out.println(coll); // [Tom, false]

  }

 

@Test
   public void test3(){
       Collection coll = new ArrayList();
       coll.add(123);
       coll.add(456);
       coll.add(new String("Tom"));
       coll.add(false);
       coll.add(new Person("Jerry",20));

       // 5.retainAll(Collection coll1):交集:获取当前集合和coll1集合的交集,并返回给当前集合
       /*Collection coll1 = Arrays.asList(123,456,789);
       coll.retainAll(coll1);
       System.out.println(coll); // [123, 456]*/

       // 6.equals(Object obj):要想返回true,需要当前集合和形参集合的元素都相同。
       Collection coll1 = new ArrayList();
       coll1.add(123);
       coll1.add(456);
       coll1.add(new String("Tom"));
       coll1.add(false);
       coll1.add(new Person("Jerry",20));

       System.out.println(coll1.equals(coll)); // true

  }

 

@Test
   public void test4(){
       Collection coll = new ArrayList();
       coll.add(123);
       coll.add(456);
       coll.add(new String("Tom"));
       coll.add(false);
       coll.add(new Person("Jerry",20));

       // 7.hashCode():返回当前对象的哈希值
       System.out.println(coll.hashCode()); // ****

       // 8.toArray():集合 ---> 数组
       Object[] arr = coll.toArray();
       for (int i = 0; i < arr.length; i++) {
           System.out.println(arr[i]);
      }

       /* 数组 ---> 集合 : 调用Arrays的静态方法:asList() */
       List<String> list = Arrays.asList(new String[]{"AA", "BB", "CC"});
       System.out.println(list); // [AA, BB, CC]

       List arr1 = Arrays.asList(new int[]{123,456}); // (此处asList中的对象视为一个整体)
       System.out.println(arr1.size()); // 1
       List arr2 = Arrays.asList(new Integer[]{123,456});
       System.out.println(arr2); // [123, 456]

       List arr3 = Arrays.asList(1,2,3);
       System.out.println(arr3); // [1, 2, 3]
  }

 

 @Test
   public void test1(){
       Collection coll = new ArrayList();

       // 9.add(Object e):将元素e添加到集合coll中
       coll.add("AA");
       coll.add("BB");
       coll.add(123);// 自动装箱
       coll.add(new Date());

       // 10.size():获取添加的元素的个数
       System.out.println(coll.size());

       // 11.addAll(Collection coll1):将coll1集合中的元素添加到当前的集合中
       Collection coll1 = new ArrayList();
       coll1.add(456);
       coll1.add("CC");
       coll.addAll(coll1);

       System.out.println(coll.size());
       System.out.println(coll);

       // 12.clear():清空集合元素
       coll.clear();

       // 13.isEmpty():判断当前集合是否为空
       System.out.println(coll.isEmpty());
  }

 

14.Iterator

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

@Test
   public void test1(){
       Collection coll = new ArrayList();
       coll.add(123);
       coll.add(456);
       coll.add(new String("Tom"));
       coll.add(false);
       coll.add(new Person("Jerry",20));

       Iterator iterator = coll.iterator();
       // 方式一:
//       System.out.println(iterator.next());
//       System.out.println(iterator.next());
//       System.out.println(iterator.next());
//       System.out.println(iterator.next());
//       System.out.println(iterator.next());
//       // 报异常:NoSuchElementException
//       System.out.println(iterator.next());

       // 方式二:不推荐
//       for (int i = 0; i < coll.size(); i++) {
//           System.out.println(iterator.next());
//       }

       // 方式三:推荐
       while (iterator.hasNext()){
           System.out.println(iterator.next());
      }
  }

 

@Test
   public void test2(){
       Collection coll = new ArrayList();
       coll.add(123);
       coll.add(456);
       coll.add(new String("Tom"));
       coll.add(false);
       coll.add(new Person("Jerry",20));

       Iterator iterator = coll.iterator();

       // 错误方式一:
//       while ((iterator.next()) != null){
//           System.out.println(iterator.next());
//       }
       // 错误方式二:
//       while (coll.iterator().hasNext()){
//           System.out.println(coll.iterator().next());
//       }
  }

 

 

    // 测试Iterator中的remove()
   // 如果还未调用next()或在上一次调用next方法之后已经调用了remove方法,
   // 再调用remove都会报IllegalStateException



   @Test
   public void test3(){
       Collection coll = new ArrayList();
       coll.add(123);
       coll.add(456);
       coll.add(new String("Tom"));
       coll.add(false);
       coll.add(new Person("Jerry",20));

       // 删除集合中“Tom”
       Iterator iterator = coll.iterator();
       while (iterator.hasNext()){
           Object obj = iterator.next();
           if ("Tom".equals(obj)){
               iterator.remove();
          }
      }
       // 遍历集合
       iterator = coll.iterator(); // 重新获取集合中的元素
       while (iterator.hasNext()){
           System.out.println(iterator.next());
      }
  }
 
posted @   家兴Java  阅读(303)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示