Java学习之路:集合

Posted smiling_and_crying

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习之路:集合相关的知识,希望对你有一定的参考价值。

集合的由来

  • 数组的长度是固定的,当添加的元素超过了数组的长度,就需要对数组重新定义
  • java内部给我们提供的集合类,能存储任意对象,长度是可以改变的。随着元素的增加而增加,随着元素的减少而减少

数组和集合的区别

  • 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值
  • 集合只能存储引用数据类型(对象Object),集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象  eg:int==>Integer
  •   
  • 数组长度是固定的,不能自动增长
  • 集合的长度是可变的,可以根据元素的增加而增长

如果元素的个数是固定的,我们使用数组

如果元素的个数不固定,我们使用集合

集合Collection类:

  • list:有序集合,有索引。存与取的顺序一样,可以重复
    • ArrayList(数组实现)
    • LinkedList(链表实现)
    • Vector(数组实现)
  • Set:无序集合,无索引。存与取的顺序不一样,不可以重复
    • HashSet (哈希算法)
    • TreeSet(二叉树算法)

ArrayList集合中部分数组实现的原理

  eg:有个容量为10的初始化数组,当它不够用的时候,就会自动生成一个1.5倍大的数组,将值重新赋值后,把以前的那个小的数组垃圾回收了

Collection的几个基本方法

  • boolean add(E e)  添加一个元素
  • boolean remove(object o)   移除某一个元素
  • void clear()  清空这个集合
  • boolean contains(Object o)
  • boolean isEmpty()   判断这个集合是否为空
  • int size()   大小
  • toArray()   将集合转化为数组
  • boolean addAll(Collection c1)  将c1添加进来
  • boolean removeAll(Collection c1)  移除this中还有的c1中的所有元素
  • boolean containsAll(Collection c1)  判断this是否包含有c1中的所有元素
  • boolean retainAll(Collection c1)   求并集

遍历一个集合,我们使用迭代器

迭代器是用来遍历集合中的每一个元素的

方法:hasNext()和next()

package lesson3;

//这是一个小例子

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class null03 {

    public static void main(String[] args) {
        Collection c1 = new ArrayList();//这不就是多态?
        c1.add("A");
        c1.add("B");
        c1.add("C");
        
        Iterator iterator = c1.iterator();
        while(iterator.hasNext()){
            Object o = iterator.next();
            System.out.println(o);
        }
        

    }

}

 

以上是关于Java学习之路:集合的主要内容,如果未能解决你的问题,请参考以下文章

Java自学编程学习之路资源合集

java学习之路--集合基础之List和Set部分

[原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓

Python学习之路——模块

我的学习之路_第六章_迭代器,泛型

python之路-16-常用模块学习