关于java.util.Collection接口中常用的方法
1.Collection中能存放什么类型的元素?
没有使用泛型之前,Collection中可以存放Object的所有子类型对象的内存地址。
使用了泛型之后,Collection中只能存放指定类型的元素的内存地址。
2.Collection中的常用方法
boolean add(E e) 向集合中添加元素e
int size() 获取集合中元素的个数
void clear() 清空集合删除集合中所有的元素
boolean contains(Object o) 判断集合中是否包含元素o
boolean remove(Object o) 删除集合中的指定元素o
boolean isEmpty() 判断集合中元素是否为空(集合中元素个数是否为0)
Object[] toArray() 把集合转换成Object数组
特别需要注意:contains(Object o)与remove(Object o)方法底层都是调用equals()方法进行比较的,比较的是
对象的内容不是内存地址,这里说的equals()方法是集合中所保存的那个对象的equals()方法。为此需要对存入集合中的所有对象的类都需要重写equals()方法,这也是程序员的素养,每个程序员都应该养成对自定义类的equals()和toString()方法进行重写的习惯。
package com.javase.collection; import java.util.ArrayList; import java.util.Collection; public class CollectionText01 { public static void main(String[] args) { // 创建一个集合对象 // Collection c = new Collection(); 该行代码报错的原因是接口不能直接new对象 Collection c = new ArrayList();//这行代码使用了多态,父类型引用指向子类型对象 // 向集合中添加元素 c.add(100); //自动装箱,实际上放进去的是包装后的对象的内存地址。Integer x = new Integer(100); c.add(3.14); //自动装箱 c.add(false); //自动装箱 c.add(new Object()); // 获取集合中元素的个数 System.out.println("集合中元素的个数为:" + c.size());//4 // 清空集合 c.clear(); System.out.println("集合中元素的个数为:" + c.size());//0 // 判断集合中元素是否为空 System.out.println(c.isEmpty());//true // 再次添加元素 c.add("hello");//这里是"hello"的内存地址放到了集合当中 c.add("中国人"); c.add("zhangsan"); c.add("java"); c.add("李四"); // 判断集合当中是否包含"李四" System.out.println(c.contains("李四"));//true // 判断集合当中是否包含"张三" System.out.println(c.contains("张三"));//false // 判断集合中元素是否为空 System.out.println(c.isEmpty());//false // 判断集合中元素个数 System.out.println("集合中元素的个数为:" + c.size());//5 // 删除集合中的"zhangsan" c.remove("zhangsan"); // 再次判断集合中元素的个数 System.out.println("集合中元素的个数为:" + c.size());//4 // 转换成数组 Object[] objs = c.toArray(); // 遍历数组 for (int i = 0; i < objs.length; i++) { System.out.println(objs[i]); } } }