2021-07-30第十九天List接口插入排序

第十九天

List接口

List接口继承了Collection,List集合是有序的,且允许元素重复的.它也具备了Collection相关的功能包括Object的 toArray和迭代器Iterator.
但是List还有特有的功能:

void add(int index,Object element):在指定的索引处插 入元素
Object get(int index):获取指定位置处的元素 + int size():一种新的集合遍历方式
Object remove(int index):删除指定位置处的元素
Object set(int index,E element):修改指定位置处的元素(替换)

List集合如何去重呢?
方法一

新建一个空的集合去存储原有集合中的非重复元素,以此来保证集合的元素唯一,集合中Collection/List—>contains(Object o)底层依赖于Object的equals方法
而List现在存储的是String类型,本身重写Object的equals,所以比较的是内容是否相同.

方法二

使用选择排序的思想
使用0角标对应的元素依次和后面角标对应的元素进行比较,小的往前方法.依次这样比较,1角标,2角标…
集合列表角标从0开始遍历当前集合然后使用0角标对应的元素依次和后面对应的元素进行比较,如果后面的元素和前面的相同了,那么将后面的元素删除掉
角标–

增强for循环

JDK5之后提供了一个新的特殊功能,增强for循环,用来代替集合中迭代器去遍历集合使用的(优先在集合中使用).
格式:

for(存储的引用数据类型 变量名: 集合/数组对象){ //集合使用居多,数组一般都是使用普通for
使用变量名即可
}

需要注意的是当前集合对象不能为空(即为null).
foreach语句:增强for它本身就是获取迭代器,如果当前集合为空呢么肯定会抛出空指针异常.

Vector集合

Vector相比于ArrayList的线程更安全,但是它比ArrayList慢,所以在不要求线程安全的情况下大部分使用后者.

Vector的特有功能:

添加
public void addElement(Object obj):在vector对象的末尾添加元素 ------> 一直使用的add(Object e)
删除
public boolean removeElement(Object obj):删除元素
获取功能
public Object elementAt(int index):获取指定位置的元素---->类似于 public Object get(int index)
public Enumeration elements() :Vector集合的专有遍历方式---->类似于 Iterator literator()
接口
boolean hasMoreElements():判断是否有更多的元素可以迭代
Object nextElement() 获取元素

插入排序

核心思想:使用1角标对应的元素进行和0角标比较
如果前面元素大,向右移动,确定角标1对应的元素的位置,再次使用2角标对应的元素依次和1和0都元素比较

依次这样比较…

Integer类:包含了int类型的值:
Integer实现自然排序(默认升序排序)
public int compareTo(Integer anotherInteger) { // 8 34
return compare(this.value, anotherInteger.value);
8,34
}
8 34
public static int compare(int x, int y) { //提高程序的执行效率
return (x < y) ? -1 : ((x == y) ? 0 : 1);
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值