Java_Collection、泛型

集合:Java中提供的一种容器,可以用来存储多个数据。

集合和数组的区别

1.数组长度不可变、固定值,集合长度是可变的。

2.数组中存储的是同一种数据类型的元素,可以存储基本数据类型也可以存储引用数据类型,集合存储的都是对象,而且对象的数据类型可以不一致。在开发当中一般当对象较多的时候,使用集合来存储对象。

集合分为两大类

  单列集合:Java.util.Collection

  双列集合:Java.util.Map

Collection:它是单列集合的根接口,用于粗出一些列符合某种规则的元素,它有两个重要的子接口,

      分别是 java.util.List 和 java.util.Set。其中,List接口集合特点元素有序,元素可重复,含有索引。

Set接口集合特点:元素不重复,没有索引。

        List接口的主要实现类有:java.util.ArrayList 和 java.util.LinkedList,

        Set接口的主要实现有:java.util.HashSet 和 java.util.TreeSet。

Collection集合常用功能
是所有单列集合的父接口,定义了所有单列集合的API方法,这些方法适用于所有单列集合。增删改查功能

public boolean add(E e):把给定的对象添加到当前集合中
public void clear():清空几个当中所有的元素。
public boolean remove(E e):当前集合中干掉
public boolean contains(E e):判断当前集合当中是否包含给定的对象元素
public boolean isEmpty():当前集合是否为空。
public int size():获取当前元素的个数
public Object[] toArray():把当前集合中的元素,存储到一个数组当中

迭代器iterator
遍历集合中所有元素,JDK官方提供了一个接口java.util.Iterator
Iterator接口也是集合当中的一员,但是与Map、Collection接口不同,Collection接口和Map接口主要是用来存储元素的,而Iterator主要用于迭代访问Collection
与Map接口中的元素。因此称为迭代器

public Iterator iterator():获取集合对应的迭代器,用来遍历集合当中的元素

    Collection<String> all =new ArrayList<>();
    all.add("我");
    all.add("的");
    Iterator<String> it=all.iterator();
    String next = it.next();
    System.out.println(next);

迭代概念:在每次取元素之前首先判断集合当中有没有元素,如果有就把这个元素取出来,再继续判断,如果还有就再一次取出来,一直把集合当中的所有元素全部取出来。
专业术语称为迭代

常用API方法
public E next():获取迭代的下一个元素
public boolean hasNext():如果集合当中仍有元素可以迭代,则返回true

for
  for(元素的数据类型 变量名 : Collection集合或者数组){
        //操作代码
    }

         int[] arr={3,5,7,9,12};
        for(int b:arr){
            System.out.print(b+" ");
        }

        Collection<String> coll=new ArrayList<>();
        coll.add("姚明");
        coll.add("科比");
        coll.add("乔丹");
        coll.add("詹姆斯");
        coll.add("加索尔");
        coll.add("库里");

        for(String a:coll){
            System.out.print(a+" ");
        }

主要用于遍历集合或者数组,在遍历过程中,一定不要进行增删操作
简化迭代器

泛型:可以在类或者方法中预知的使用未知的数据类型
一般在创建对象的时候,将未知的数据类型确定为具体
使用泛型的好处
  • 避免了类型转换的麻烦,存储的是什么样的数据类型,取出的就是什么样的数据类型

  • 把运行期异常(代码运行之后会抛出的异常)提升到编译期阶段(写代码的时候就会报错)

备注:泛型它其实也是数据类型的一部分,一般我们将类名和泛型合并一起看做数据类型。

泛型的定义与使用

泛型,用来灵活的将数据类型应用到不同的类、方法、接口当中。将数据类型作为参数进行传递。

因为我们的集合框架体系中,大量的使用了泛型。

修饰符   class 类名<代表泛型的变量> {
    
}
  public class ArrayList<E> {
    public boolean add(E e){}
    public E get(int index){}
    //....
}
 
原文地址:https://www.cnblogs.com/9080dlb/p/14071256.html