java集合

java 集合概览

Java是面对对象的语言,我们在编程的时候自然需要存储对象的容器,数组可以满足这个需求,但是数组初始化时长度是固定的,但是我们需要一个长度可变化的容器,因此,集合诞生了。

Java集合,也叫做容器,主要是由两大接口派生而来:

  • Collection 接口,主要用于存放单一元素;
  • Map 接口,主要用于存放键值;

Java集合框架如下图:


集合和数组的区别

集合数组
长度可变固定
内容储存不同类型元素存储只可单一类型元素
元素只能存储引用类型元素可存储引用类型,也可存储基本类型

为什么要使用集合?

当我们需要保存一组类型相同的数据的时候,我们应该是用一个容器去保存的,这个容器就算数组,但是用数组具有一定的弊端,因为我们在实际开发中,储存的数据的类型是多种多样的,于是就出现了“集合”,集合的作用和数组一样,也是用来存储多个数据的。

数组的缺点是一旦声明之后,长度将无法改变;同时,也决定了该数组存储的数据的类型;而且数组存储的数据是有序的、可重复的、特点单一,集合提高了数据存储的灵活性。


Collection

参数类型

E - 此集合中元素的类型

所有的父级接口:

Iterable <E>

方法和作用

增删改查:

返回类型

方法名

作用

booleanadd()增加一个元素进入集合
voidclear()清空整个集合
booleancontains(Object o)判断是否包含该元素
inthashCode()返回集合的哈希值
booleanisEmpty()返回集合是否为空
booleanremove(Object o)删除指定元素
intsize()返回集合元素个数

集合间直接相加或减的方法:

代码:

/*————————————————
版权声明:本文为CSDN博主「WeirdoX26」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46647863/article/details/122619559
*/

public class CollectionTest01 {
    
    public static void main(String[] args) {
        
        //创建一个集合对象
        //Collection c = new  Collection(); 接口是抽象的,无法实例化。
        Collection c = new ArrayList();

        /*
          boolean add(E e) 向集合末尾中添加元素
         */
        c.add(1200);
        //自动装箱,实际上是放进去了一个对象的内存地址。
        //Integer x = new Integer(1200)
        c.add(new Object());
        c.add(3.14);
        c.add(true);//自动装箱

        /*
          boolean remove(Object o) 删除集合中的元素o,删除成功返回true
         */
        System.out.println(c.remove(1200));//true

        /*
          int size() 获取集合中元素的个数
         */
        System.out.println("集合中元素的个数是:"+c.size());//3

        /*
          void clear() 清空集合
         */
        c.clear();
        System.out.println("集合中元素的个数是:"+c.size()); //0

        /*
          boolean contains(Object o)
          判断当前集合中是否包含元素o,包含返回true,不包含返回false
         */
        c.add("钢铁侠");
        c.add("蜘蛛侠");
        c.add("美国队长");
        System.out.println(c.contains("钢铁侠"));//true
        System.out.println(c.contains("蜘蛛侠"));//true

        /*
          boolean isEmpty() 判断集合是否为空
         */
        System.out.println(c.isEmpty());//false
        c.clear();
        System.out.println(c.isEmpty());//true

        /*
          Object[] toArray() 调用这个方法可以把集合转换成数组
         */
        c.add("abc");
        c.add("def");
        c.add(100);
        Object[] objs=c.toArray();
        for(int i=0;i<objs.length;i++){
            System.out.println(objs[i]);
            //输出结果:abc   def  100
        }

        /*
          boolean addAll(Collection c)
          将一个集合中的所有元素添加到另一个集合,添加成功返回true
         */
        Collection c1 =new ArrayList();
        c1.add("123");
        c1.add("456");
        Collection c2 =new ArrayList();
        c2.add("789");
        c2.add("000");
        System.out.println(c2.addAll(c1));//true
        
        }
}

Iterator迭代器

Collection c =new ArrayList();
    c.add(1);
    c.add(2);
    c.add(3);
    c.add(4);

    Iterator it= c.iterator(it.hasNext());
        
    while (it.hasNext()){
//返回it当前值并指向下一个值
        Object obj=it.next();
        System.out.println(obj);

        System.out.println(it.hasNext());
    }

true
1
true
2
true
3
true
4
false


List

List接口是有序列表,允许存放重复的元素。

List的三个接口:

List list1 = new ArrayList();

List list2 = new Vector();

List list3 = new LinkedList();
List接口实现类ArrayListLinkedListVector
底层数据结构Object[ ]数组双向链表Object[ ]数组
查询速度
查询效率
增删速度
线程安全性不安全不安全安全
可否存储重复元素可以可以可以
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值