Java的查找与排序

Java中的查找:

顺序查找,指从第一个元素开始,以此查找。典型的有List中的indexOf方法。

int index=list.indexOf("内容");  该方法的本质就是顺序查找。当数据量庞大时,效率低下。

二分查找,二分查找的前提是该内容是有序的,因此处于无序状态的需要先进行排序。类似于人们玩猜大小的游戏。Java的util包中的Arrays类的binarySearch方法可以进行二分查找,它以一个数组和目标值作为输入,返回目标的索引值。如果不存在,就返回一个负值,该负值为如果此数在数组中,那么它应该在的位置。 列表可以利用Collections.binarySearch(list,target)达到同样的效果。

Java中的排序:

Java对于数组提供了排序方法,还是那个Arrays类,Arrays.sorts(数组名);同样的,这是依托于类实现了Compareable接口

List的排序利用的是Collection.sort(list)

当处理原数据类型的数据时,Arrays.sort采用的快速排序;当处理对象数据时,Collection和Arrays采用的是归并排序。

Java类库中的查找与排序
Arrays.binarySearch(array,value)在一个已经排好序的数组中返回索引值,不存在则返回负数
Arrays.sort(array)数组排序
Collections.binarrySearch(list,value)在一个已经排好序的列表中返回索引值,不存在则返回负数
Collection.shuffle(list)打乱排序(随机排序)
Collection.sort(list)列表排序

比较器

按照自定义规则进行排序,例如按照String的长度进行排序。

比较器的声明规则:不同于之前见到的Compareable接口,比较器的声明在一个新的类之中。并且它包含两个比较的对象,而不是之前见到的一个。

import java.util.Comparator;

public class ui implements Comparator<String> {
    @Override
    public int compare(String o1, String o2) {
        return o1.length()-o2.length();
    }
}

调用比较器就很简单了,sort函数有两个参数,我们之前只用了一个,第二个就是为比较器预留的。


import java.util.*;

public class Main {
    public static void main(String[] args) {
    String [] a=new String[3];
    a[0]="Hello";
    a[2]="jkj";
    a[1]="LLLLLLLLLLLLLLLL";
    Arrays.sort(a,new ui());//注意如此声明
    System.out.println(Arrays.toString(a));//输出数组的方法应该好好看看。
    }
}

对String排序中对大小写不敏感利用String类中的比价器常量CASE_INSENSITIVE_ORDER

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值