Java笔记第十四章集合

1、集合

集合是一个存放任意数量对象的引用的容器(多个对象放在另一个对象中,此对象可称为一个集合对象)
集合层次结构
|----Collection接口:单列集合,用来存储一个一个的对象。
–|------List接口:存储有序的,可重复的数据。 -->“动态"数组
----|--------ArrayList、LindedList、Vector(常见实现类)
–|------Set接口:存储无序的、不可重复的数据 -->类似高中讲的"集合”
----|--------HashSet、LinkedHashSet、TreeSet(常见实现类)
|----Map接口:双列集合,用来存储一对(key - value)一对的数据。键值对 -->高中函数: y=f(x);
----|------HashMap、LindedHashMap、TreeMap、Hashtable、Properties(常见实现类)
注意:如果集合对象创建时不指定泛型,则在当前集合中可以存放任意类型的对象。
包括:Collection List Set Map
List:接口的实现类有:ArrayList、LinkedList、Vector
特点:有序、可重复
ArrayList:数组结构(底层使用数组来实现),以下标形式获取指定位置的元素
优缺点:查询方便(快速),插入和移除不便,可以重复添加同一个对象。
场景:一次插入,多次查询。
注意:ArrayList创建对象时,默认预留10个元素的位置(初始化数组长度为10),每次扩容50%
LinkedList:链表结构
优缺点:插入和移除方便(快速),查询不便。
场景:频繁插入和移除
方法:
get(int index)获取指定位置的元素(核心:通过数组下标获取元素)
add(int index,Object element)在指定位置添加元素
remove()参数:位置/对象,如果参数为位置,则移除当前位置的元素,并提供当前位置元素为返回值;如果参数为对象,则移除当前集合中第一个匹配的元素。
Set:接口的实现类有:HashSet、TreeSet
特点:无序、不可重复
HashSet:使用迭代器或者forEach进行遍历
原理:根据要存放对象的哈希值来计算出对象的位置
TreeSet:使用迭代器或者forEach进行遍历
原理:字符、字符串、数字使用字典顺序存放,自定义类型的存放顺序根据compareTo方法定义的规则排序。
Map:键值对
特点:通过键获取对应的值。
注意:存放时,键相同的情况下,后面的值会替换前面的值。
注意:map的键一般为String类型,值可以为任意类型
方法:map.put(key, value)表示向map对象中存放一个键值对,key为键,value为值
返回值:泛型对象,值为当前键所对应的原来的值(被替换的值)
2、集合中的方法:
size()表示获取当前集合中的元素个数
add(Object e)表示想集合中的默认位置添加一个元素,参数为Object类型的子类。

3、泛型:泛指一种类型
是一种约束,在创建对象时指定,则使用时只能使用此种类型或其子类
写法:在类名称后面添加<大写字母>,一般来说,类的泛型默认为T,接口的泛型默认为E.
注意:泛型可以有多个,中间使用逗号(",")间隔

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值