Mark学Java之 Collection(一)

概念

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

集合数组区别在于:

数组的长度时固定的,集合的长度时可变的.

数组中存储的是同一类型的元素,可以存储基本数据类型值和对象.集合存储的都是对象(对象类型可以不一致).在开发中一般当对象多时,使用集合进行存储.

int[] arr=new int[10];
Student[] arr=new Student[3];
ArrayList<Student>=new ArrayList();

集合框架

在这里插入图片描述
单列集合分类
Collection一个独立元素的序列,这些元素都服从一条或多条规则.
-List一个有序的集合(存取与取出元素顺序相同),允许存储重复的元素,有索引,可以使用普通的for循环遍历.
-Set不允许存储重复元素,无索引(不能使用普通的for循环遍历)
----HashSet TreeSet,无序集合(存储和取出元素的顺序有可能不一致)
----LinkedHashSet有序集合

单列集合特点

有序性 有无索引 底层实现
List 有序存取 有索引 \
ArrayList 有序存取 有索引 数组(查询快,增删慢)
LinkedList 有序存取 有索引 链表(查询慢,增删快)
Set 无序存取 无索引 \
HashSet 无序存取 无索引 哈希表+红黑树
LinkedHashSet 有序存取 无索引 哈希表+链表
TreeSet \ \ 二叉树(用于排序)

Collection

无带索引方法
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<E> iterator()返回在此Collection的元素上进行的迭代器

    public static void main(String[] args) {
        //使用多态创建集合
        Collection<String> coll = new ArrayList<>();
        //重写toString(),输出[ ]
        System.out.println(coll);
        //add()一般情况返回值为true
        boolean b1 = coll.add("Mark");
        coll.add("Love");
        coll.add("Programming");
        //remove() 集合中存在元素返回true,不存在元素返回false
        boolean programming = coll.remove("Programming");
        //contains()包含返回true,否则返回false
        coll.contains("Mark");
        //判断当前集合是否为空
        coll.isEmpty();
    }

Iterator

迭代:即Collection集合元素的通用获取方式.在取元素之前判断集合中是否有元素,有则取出,无则继续判断,直到所有元素被取出.

通过获取Iterator接口的实现类对象(iterator(),Collection接口中)

boolean hasNext()如果仍然有元素可以迭代,返回true
E next()返回迭代的下一个元素

Collection<String> coll=new ArrayList<>();
coll.add("a");
coll.add("b");
coll.add("c");
/*1.使用集合中方法iterator()获取迭代器实现类对象,使用Iterator接口接收(多态)
注意:Iterator<E>接口泛型跟着集合走
*/
Iterator<String> it=coll.iterator();
//2.使用hasNext()判断是否还有元素
while(it.hasNext()){
   //3.使用Iterator接口中方法next()取出下一个元素
   String str=it.next();
   System.out.prinln(str);
}
//PS:了解for循环使用迭代器
for(Iterator<String> it=coll.iterator();it2.hasNext();){
   String e=it2.next();
   System.out.println(e);
}

迭代器原理
hasNext() 判断有无下一元素
next() 1.取出下一个元素 2.指针向后移动
在这里插入图片描述

发布了10 篇原创文章 · 获赞 7 · 访问量 198

猜你喜欢

转载自blog.csdn.net/MARK19960120/article/details/105648780