码迷,mamicode.com
首页 > 编程语言 > 详细

Java学习之路(六):集合

时间:2018-07-20 11:37:09      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:移除   清空   iter   顺序   OLE   自动生成   his   nal   基本   

集合的由来

  • 数组的长度是固定的,当添加的元素超过了数组的长度,就需要对数组重新定义
  • 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学习之路(六):集合

标签:移除   清空   iter   顺序   OLE   自动生成   his   nal   基本   

原文地址:https://www.cnblogs.com/smiling-crying/p/9339265.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!