Java学习day02--Collection类及泛型

Collection类常用方法和泛型介绍

  1. Collection是List和Set的父类,这三个均为抽象类。List的子类有ArrayList,LinkedList;Set的子类有HashSet,LinkedHashSet。
  2. 泛型,该部分主要将泛型类、泛型方法、含有泛型的接口,以及3种泛型通配符。

Collection类常用方法

  1. public boolean add(E e);
    为集合添加元素,有返回值,且如果是List集合,永远返回true;如果是Set,当重复添加元素时返回fasle。
    注意:
Collection<String> list = new ArrayList<>();

这样定义的话,list是指向子类ArrayList的实例,list仍是Collection类,不能调用ArrayList类的特有方法。

  1. public void clear()
    清空集合里面的对象,但不成为空指针null

  2. public boolean remove(E e)
    清除某个对象;如果有重复多个,清除第一个;若清除集合没有的元素,返回false

  3. public boolean contains(E e)
    判断是否包含对象e

  4. public boolean isEmpty()
    判断对象是否为空

  5. public int size()
    返回集合对象的个数

  6. public Object[] toArray()
    将集合转化为数组

  7. public Iterator<E> iterator()
    获可遍历元素的迭代器,该方法配合下述迭代器讲解食用

迭代器

由于Collection类没有定义获取元素的方法,故选择迭代器对集合元素进行访问

  1. public boolean hasNext()
    判断是否有元素可迭代
  2. public E next()
    遍历获取元素。这两个一般结合使用,如:
Collection<String> list = new ArrayList<>();
list.add("abc");
list.add("def");
list.add("ghi");
Iterator<String> it = list.iterator(); // 得到一个迭代器对象
while(list.hasNext()){
	System.out.println(it.next()); // 遍历打印集合里面的每一个元素
}
  1. foreach其实也是一个迭代器,可迭代数组、集合Collection。

泛型

  1. 泛型类
public class MyArrayList<T>()
  1. 泛型方法
public class MyList {
    public <T> void show(T e1,T e2,T e3) {
        System.out.println("show()...");
    }
}

测试类:

public class Demo {
    public static void main(String[] args) {
        MyList myList = new MyList();
        myList.<Integer>show(1,2,3);
        myList.<String>show("a", "b", "c");
    }
}
  1. 含有泛型的接口
public interface Animal<E> {
    public void show(E e);
    public E get();
}
  1. 泛型通配符
    (1) ArrayList<?> 表示任意类型
    (2) ArrayList<? extend P2> 可匹配P2或P2的所有子类
    (3) ArrayList<? supper P2> 可匹配P2或P2的所有父类

Tips:
Collections.shuffle(Collection); //洗牌操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值