集合概述(一天一个知识点)

在程序中可以通过数组来保存多个对象,但在某些情况下开发人员无法预先确定需要保存对象的个数,此时数组将不再适用,因为数组的长度是不可变的。为了在程序中可以保存这些数目不确定的对象,jdk中提供了一系列特殊的类,这些类可以存储任意类型的对象,并且长度可变,在JAVA中这些类被称为集合。集合类都位于java.util包中,在使用时注意要导包。

集合按照其存储结构可以分为二大类,即单列集合collection和双列集合map。

collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有二个重要的子接口,分别为list和set。其中list的特点是元素有序,可重复。set的特点是元素无序,不可重复。list接口主要实现类有arraylist和linkedlist,set接口的主要实现类有hashset和treeset

map:双列集合类的根接口,用于存储具有键,值映射关系的元素,每个元素都包含一对键值,在使用map集合时可以通过指定的key找到对应的Value。map接口的主要实现类有hashmap和treemap

collection接口的方法
boolean add(Object o)
向集合添加一个元素
void clear()
删除该集合中的所有元素
boolean remove(Object o)
删除集合指定的元素
boolean isEmpty()
判断集合是否为空
boolean contains(Object o)
判断集合是否包含某个元素
iterator iterator()
用于遍历集合中的所有元素
int size()
获取集合元素的个数

list接口
list接口继承自collection接口,是单列集合的一个重要分支,习惯的将实现了list接口的对象称为list集合。在list集合中允许出现重复的元素,所有元素是以一种线性方式存储的,在程序中可以通过索引来访问集合中的指定元素,另外,list集合有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。

list集合常用方法
void add(int index ,Object element)
将元素插入指定位置
boolean addAll(int index,Collection c)
将集合所有元素插入指定位置
Object get(int index)
返回集合索引位置的元素
Object remove(int index)
删除索引处的元素
Object set(int index,Object element)
将索引index处的元素换成element,并将替换后的元素返回
int indexOf(Object o)
返回对象o在集合出现位置的索引
List subList(int fromIndex,int tolndex)
返回从索引开始到结束处所有元素集合组成的子集合

ArrayList集合
ArrayList集合的底层是使用一个数组来保存元素的,在增加或删除指定位置的元素时,会导致创建新的数组,效率比较低,因此不适合做大量的增删操作,但这种数组的结构允许程序通过索引的方式来访问元素,因此使用ArrayList集合查找元素很便捷

import java.util.*
public class example{
public static void main(String [ ] args){
ArrayList list = new ArrayList()
list.add(“stu1”);
list.add(“stu2”);
system.out.println(list.size());
system.out.println(list.get(1));

LinkedList集合
List集合的另一个实现类LinkedList,该集合内部维护了一个双向循环链表,链表中每一个元素都使用引用的方式来记住它们前一个元素和后一个元素,从而可以将所有的元素彼此连接起来。因此LinkedList集合对元素的增删操作具有很高的效率。
LinkedList中定义的方法
void add(int index,E element)
void addFirst(Object o)
void addLast(Object o)
Object getFirst()
Object getLast()
Object removeFirst()
Object removeLast()

import java.util.*
public class example02{
public static viod main(String[ ] args){
LinkedList link = new LinkedList();
link.add(“stu1”);
link.add(“stu2”);
system.out.println(link.toString());
link.add(3,“student”);
link.addFirst(“First”);
system.out.println(link.getFirst());
link.remove(3);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值