集合和泛型之集合
学习集合的目标:
1、会使用集合存储数据
2、会遍历集合,把数据取出来
3、掌握每种集合的特性
1.2 集合概述
List接口:(如 Vector集合 、ArrayList 集合、LinkedList集合)
1、有序的集合(存储和取出元素顺序相同)
2、允许存储重复的元素
3、有索引,可以使用普通的for循环遍历
继承:子类共性抽取,形成父类(接口)
Set接口(TreeSet集合、HashSet集合、LinkedHashSet集合 )
1、不允许存储重复元素
2、没有索引(不能使用普通的for循环遍历)
3、TreeSet和HashSet是无序的集合(存储和取出元素的顺序有可能不一致)
最终形成了Collection接口
定义的是所有单列集合中共性的方法
所有的单列集合都可以使用的共性的方法
没有带索引的方法
集合框架的学习方式:
1、学习顶层:学习顶层接口/抽象类中的共性方法,所有子类都可以使用
2、使用底层:底层不是接口就是抽象类,无法创建对象使用,需要使用底层的子类创建对象使用
1.3 Collection常用功能
· public boolean add(E e): 把给定的对象添加到当前集合中。
· public void clear(): 清空集合中所有的元素。
· pubic boolean remove(E e): 把给定的对象在当前集合中删除。
· public boolean contains (E e): 判断当前集合中是否包含给定的对象。
· public boolean isEmpty(): 判断当前集合是否为空。
· public int size(): 返回集合中元素的个数。
· public Object toArray(): 把集合中的元素,存储到数组中。
注:所有的子类都可以使用这些方法。
例1、public boolean add(E e): 把给定的对象添加到当前集合中
package com.itheima.demo01.Collection;
import java.util.ArrayList;
import java.util.Collection;
/*
java.util.Collection接口
所有单列集合最顶层的接口,里面定义了所有单列集合共性的方法
任意的单列集合都可以使用Collection接口中的方法
*/
public class Demo01Collection {
public static void main(String[] args) {
//创建集合对象,可以使用多态
Collection<String> coll = new ArrayList<>();
System.out.println(coll); // 打印对象应该返回的是地址,但是却返回了空[],故判断重写了toString方法
/*
public boolean add(E e): 把给定的对象添加到当前集合中。
返回值是一个boolean值,一般都返回true,所以可以不用接收。
*/
boolean b1 = coll.add("张三");
System.out.println("b1:"+b1); // b1:true
System.out.println(coll); // [张三]
coll.add("李四");
coll.add("王五");
coll.add("朱六");
coll.add("赵七");
System.out.println(coll); //[张三, 李四, 王五, 朱六, 赵七]
}
}
例2、(以下例子皆承上)
pubic boolean remove(E e): 把给定的对象在当前集合中删除。
boolean b2 = coll.remove("赵七");
System.out.println("b2:"+b2); // b2:true
boolean b3 = coll.remove("田七");
System.out.println("b3:"+b3); // b3:false
System.out.println(coll); // [张三, 李四, 王五, 朱六]
例3、public boolean contains (E e): 判断当前集合中是否包含给定的对象。
/*
包含返回true
不包含返回false
*/
boolean b4 = coll.contains("李四");
System.out.println("b4:"+b4); // b4:true
boolean b5 = coll.contains("赵四");
System.out.println("b5:"+b5); // b5:false
例4、 public boolean isEmpty(): 判断当前集合是否为空。
在这里插入代码片
/*
集合为空返回true,集合不为空返回false。
*/
boolean b6 = coll.isEmpty();
System.out.println("b6:"+b6); // b6:false
例5、public int size(): 返回集合中元素的个数。
// public int size(): 返回集合中元素的个数。
int size = coll.size(); //快捷输入方式 coll.size().var+回车 直接生成前面赋值的变量
System.out.println("size:"+size); // size:4
例6、public Object toArray(): 把集合中的元素,存储到数组中。
Object[] arr = coll.toArray();
for(int i = 0; i<arr.length; i++){
System.out.println(arr[i]);
例7、public void clear(): 清空集合中所有的元素。但是不删除集合,集合还存在
// 但是不删除集合,集合还存在
coll.clear();
System.out.println(coll); // []
System.out.println(coll.isEmpty()); // true