Collection方法之二 向集合中添加自定义的元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Collection方法之二 向集合中添加自定义的元素相关的知识,希望对你有一定的参考价值。

新建一个Person类

package andycpp;

public class Person {
  private  String name;
  private Integer age;
  //get,set方法
 public String getName() {
   return name;
  }
  public void setName(String name) {
   this.name = name;
  }
  public Integer getAge() {
   return age;
  }
  public void setAge(Integer age) {
   this.age = age;
  }
  //构造器
 public Person(String name, Integer age) {
   super();
   this.name = name;
   this.age = age;
  }
  //toString方法
 @Override
  public String toString() {
   return "Person [name=" + name + ", age=" + age + "]";
  }
  
 }










package andycpp;

import Java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Date;

import org.junit.Test;

public class TestCollection { 
  @Test
  public void testCollection2(){
   Collection coll  = new ArrayList();
   //存入现成的,也可以存入自定义的
  coll.add(123);
   coll.add("AA");
   coll.add(new Date());
   coll.add("BB");
   
   Person p = new Person("MM",23);
   coll.add(p);
   System.out.println(coll);
   //6,contains(Object obj);判断集合中是否包含指定的obj元素,如果包含返回true,反之,返回false
   boolean b1 = coll.contains(123);
   System.out.println(b1);
   boolean b2 =coll.contains(p);
   System.out.println(b2);
  }
  
  
  输出

[123, AA, Thu Mar 16 11:38:57 CST 2017, BB, Person [name=MM, age=23]]
 true
 true





























package andycpp;

import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Date;

import org.junit.Test;

public class TestCollection { 
  @Test
  public void testCollection2(){
   Collection coll  = new ArrayList();
   //存入现成的,也可以存入自定义的
  coll.add(123);
   coll.add("AA");
   coll.add(new Date());
   coll.add("BB");
   
   
   coll.add(new Person("MM",23));
   System.out.println(coll);
   //6,contains(Object obj);判断集合中是否包含指定的obj元素,如果包含返回true,反之,返回false
   boolean b1 = coll.contains(123);
   System.out.println(b1);
   boolean b2 =coll.contains(new Person("MM",23));
   System.out.println(b2);
  }
  

输出

[123, AA, Thu Mar 16 11:42:16 CST 2017, BB, Person [name=MM, age=23]]
 true
 false


第二种情况new了两个对象,所以返回false

思考:为啥包含123是true,即b1是true,而我自定义的b2就是FALSE呢




当我们不希望出现这种情况的时候怎么做呢?




当你传入的元素的属性值,和现有的集合中的元素的属性值一样,我就认为是一个,返回true.




因此,需要重写Person里面的equals()方法,见下一篇Collection方法之三

 

以上是关于Collection方法之二 向集合中添加自定义的元素的主要内容,如果未能解决你的问题,请参考以下文章

Java——Collection集合的常规用法

Java Review (二十集合-----Collection 接口)

Java Review (二十集合-----Collection 接口)

使用 Collection.Add 使用自定义对象填充 VBA 集合

Collection方法之一 向集合添加元素,判断是否为空

集合 Collection