磊哥说java_java 集合

List:列表 ,元素有序保存 ,元素可重复              Set:集合,元素无序保存,元素不能重复

List和Set都继承Collection 接口

List接口的实现类 ArrayList ,ArrayList继承AbstractList,并实现List接口。ArrayList随着元素的添加 ,元素的数目会增加,列表也会随之扩展。

ArrayList构造方法:

ArrayList();

ArrayList(Collection c)   根据其他集合c的元素创建新的集合列表

常用方法:

add(Object e)

get(index)

remove(index)  返回值是被删除的元素,,不是boolean!!

size()

toArray();               集合转换为数组

set(index,值)   设置指定下标元素的值

注:一般的 ,创建集合加上泛型,因为对于集合容器有一个问题,也就是把一个对象放入容器后,会丢失类型信息,容器会默认把对象看做Object来存储,所以去除元素后,对象的;类型也是Object,这个时候就需要强转换类型,这样存在安全风险。所以一般会添加上泛型,来规定集合所存放的数据类型。

Set接口的实现类 hashSet,。    还有其他的 用的很少,不做介绍基本与List类似。   Set  的 remove方法的返回值是boolean值,因为是无序的所以只能移除元素,不能通过下标移除元素。

for each 遍历方式:

55510ec376a7f3f1f9b698f2d26e39cc.png

注意:这里的遍历方式,不能改变遍历对象的大小,否则报错。对于for each 遍历方式可以对两种类型的对象使用,一种是数组类型,一种是实现了Iterable接口的类型。

public interface Iterable(){

Iterator  iterator();

}

Iterable 也是接口,,,,是对collection进行迭代的迭代器。方法:

boolean hasNext()    如果能读到元素,返回true

E next() 返回迭代元素

void remove()从迭代器中中指向的collection中 移除

ba0f7dd56e2dfc94508e1c2a928e4164.png

如上图, 可以看做是for each 循环的封装方法。

Collections类 提供一些对集合的常用操作。如:排序和查找。

Collections 排序有两种 ,1.sort(List list) 对集合进行按照默认的方法进行自然排序    2.sort(List list,  Comparator c)根据比较器指定的方法进行排序,Comparator  也是一个接口,被比较对象的类型必须实现此接口,里面有比较的方法,int compare (To1,TO2)比较用来排序的两个参数,在使用时可以按照具体要求重写 该方法。还有比较的方法 如:boolean equals(Object ,obj)  指示某个对象是否等于此Comparator。

第一种方法:1.sort(List list) 对集合进行按照默认的方法进行自然排序

5eb7201ba3de8a5b6b3419a19d551ff8.png

338660332af832c685856dcc5634b9a1.png

e2a5de3d24c82522a076e3d8f1885f9d.png

2.sort(List list,  Comparator c)根据比较器指定的方法进行排序,Comparator  也是一个接口,被比较对象的类型必须实现此接口,里面有比较的方法,int compare (To1,TO2)比较用来排序的两个参数,在使用时可以按照具体要求重写 该方法

0883356b640b473d8ea3ab8441a93425.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值