集合框架总结1

来源:互联网 发布:windows nginx 自启动 编辑:程序博客网 时间:2024/06/03 12:47

2 集合框架

2.1. Collection

java提供了一种可以存数一组数据的数据结构,其提供了丰富的方法,在实际开发中往往比数组使用的广泛。这种数据结构成为集合:Collection。

Collection是一个接口,其定义了集合的相关功能方法。

2.1.1. List和Set

Collection派生出了两个子接口,一个是List另一个则是Set。

List:称为可重复集,顾名思义,该集合中是允许存放重复元素的,那么何为重复元素?重复元素指的并非是同一个元素,而是指equals方法比较为true的元素。

Set:称为不可重复集,所以,该集合中是不能将相同的元素存入集合两次,同List,这里相同指的也是两个元素的equals比较结果为true。

2.1.2. 集合持有对象的引用

集合中存储的都是引用类型的元素,那么引用类型变量实际上存储的是对象的“地址”,所以实际上集合只存储了元素对象在堆中的地址。而并不是将对象本身存入了集合中。

2.1.3. add()方法

Collection定义了一个add方法用于向集合中添加新元素。 该方法定义为:

  1. boolean add(E e)

该方法会将给定的元素添加进集合,若添加成功则返回true,否则返回false

例如:

  1. Collection<String> c = new ArrayList<String>();
  2. System.out.println(c); // []
  3. c.add("a");
  4. c.add("b");
  5. c.add("c");
  6. System.out.println(c); // [a, b, c]

这里Collection后面的<String>是泛型,我们后面会讲解,这里不写也没有关系。

2.1.4. contains方法

  1. boolean contains(Object o)

该方法会用于判断给定的元素是否被包含在集合中。若包含则返回true,否则返回false。

这里需要注意的是,集合在判断元素是否被包含在集合中是使用元素的equals的比较结果。

(o==null ? e==null : o.equals(e)) 其中e是集合中的元素。

例如:

  1. Collection<Cell> cells = new ArrayList<Cell>();
  2. cells.add(new Cell(1, 2));
  3. cells.add(new Cell(1, 3));
  4. cells.add(new Cell(2, 2));
  5. cells.add(new Cell(2, 3));    
  6. Cell cell = new Cell(1, 3);
  7. // List集合contains方法和对象的equals方法相关
  8. boolean flag = cells.contains(cell);
  9. // 如果Cell不重写equals方法将为false
  10. System.out.println(flag); // true

2.1.5. size,clear,isEmpty方法

size方法用于获取当前集合中的元素总数。该方法定义为:int size()

clear方法用于清空集合。该方法定义为:void clear()

isEmpty方法用于判断当前集合中是否不 包含元素。该方法定义为:boolean isEmpty()

例如:

  1. Collection<String> c = new HashSet<String>();
  2. System.out.println(c.isEmpty()); // true
  3. c.add("java");    
  4. c.add("cpp");    
  5. c.add("php");
  6. c.add("c#");    
  7. c.add("objective-c");
  8. // isEmpty:false, size: 5
  9. System.out.println("isEmpty:" + c.isEmpty() + ",size: " + c.size());        
  10. c.clear();
  11. // isEmpty:true, size: 0
  12. System.out.println("isEmpty:" + c.isEmpty() + ", size: " + c.size()); 
0 0
原创粉丝点击