Java学习——集合

集合

        集合,字面意思就是一堆有相似特征的东西放一起,也可以成为容器,我们最常见的一种容器就是数组:

                —同一种类型,长度确定后不可变,每一个元素都有索引,索引从零开始

        但这么长时间的学习我们也知道数组的不方便:长度固定不可更改。但是现实中我们解决问题的时候往往会遇到需要随时进行更改的数据量,这样一来数组的缺点就会无限放大。所以这里Java就为我们提供了许多不同特征的容器类

        需要存储不可重复的数据,要存储对元素进行排序的数据,我们都可以通过这些容器类来实现,下面我们就学习如何使用容器类来存储这些数据

集合体系概述

        Java集合API分为:

                单列集合(值)(Collection)

                        -List:可以存储重复元素

                                -ArrayList:数组实现

                                -LinkList:链表实现

                                -Vector:数组实现(线程安全类)

                                -...

                        -Set:不可存储重复元素

                                -HashSet

                                -TreeSet

                双列集合(键:值)(Map,mapping,键:值的映射):

                                -HashMap

                                -TreeMap

                                -HashTable

ArrayList实现类:

package Gather;

import java.util.ArrayList;

public class ArrayListDemo {
    /*
        List接口实现类
            add
            ArrayList:可以保存重复元素,底层是一个数组实现,添加元素的类型可以是任意的
            虽然集合中默认是可以添加任意数据类型,但是后续处理时,会出现类型转换问题
            所有Java中的集合类都支持自定义类型(泛型    把类型当作参数传递)

            底层是数组,默认长度为10,当数组装满时会自动扩容.扩容到原来的1.5倍
    */
    public static void main(String[] args) {
        ArrayList arrayList=new ArrayList();
        arrayList.add(1);
        arrayList.add("dsaji");
        arrayList.add(true);
        /*
               for (int i = 0; i < arrayList.size(); i++) {
                Object obj=arrayList.get(i);
                String s=(String)obj;
                System.out.println(s.length());
                }
        */
        ArrayList<String> arrayList1=new ArrayList<>();
        arrayList1.add("ok");//这个时候只允许添加String类型的内容

        ArrayList<Integer> arrayList2=new ArrayList<>();
        arrayList2.add(10);//自动装箱
        //好处:一个集合中只能存储一种相同的数据类型,方便后续处理操作

        //添加方法
        ArrayList<String> arrayList3=new ArrayList<>();
        arrayList3.add("a");//在末尾添加元素,自动扩容
        arrayList3.add("a");
        arrayList3.add("a");
        arrayList3.add("a");
        arrayList3.add("b");
        System.out.println(arrayList3);
        arrayList3.add(2,"kk");//使用的时候要注意索引会不会越界,从0到size(实际装填的个数)
        System.out.println(arrayList3);

        //删除方法
        arrayList3.remove("b");//根据元素内容删除
        System.out.println(arrayList3);
        arrayList3.remove("a");//只删除匹配到的第一个元素
        System.out.println(arrayList3);

        String s=arrayList3.remove(1);//删除并返回指定位置上的元素
        System.out.println(s);//输出返回的元素
        System.out.println(arrayList3);//删除后的数组
    }
}

LinkedList实现类:

package Gather;

import java.util.LinkedList;

public class LinkListDemo {
    public static void main(String[] args) {
        LinkedList<String> linkedList=new LinkedList<>();
        linkedList.add("a");
        linkedList.add("b");
        linkedList.add("c");
        linkedList.add("d");
        linkedList.add("e");
        linkedList.addFirst("start");
        System.out.println(linkedList);
        linkedList.addLast("end");
        linkedList.add(3,"knn");//在指定位置插入元素
        System.out.println(linkedList);

        System.out.println(linkedList.get(4));//返回指定位置上的元素

        System.out.println(linkedList.removeFirst());//删除第一个位置的元素并返回其值


    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值