zoukankan      html  css  js  c++  java
  • 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){}
        //....
    }
     
  • 相关阅读:
    六种排序
    洛谷 P1879 [USACO06NOV]玉米田Corn Fields
    [USACO06NOV]玉米田Corn Fields
    c++位运算符 | & ^ ~ && ||,补码,反码
    Blockade(Bzoj1123)
    割点(Tarjan算法)【转载】
    子串
    生命是什么
    怎样说话才打动人
    自控力
  • 原文地址:https://www.cnblogs.com/9080dlb/p/14071256.html
Copyright © 2011-2022 走看看