import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CollectionsTest {
/**
* Collections工具类:提供了关于集合的常用操作
*/
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("ab");
al.add("aadc");
al.add("aaa");
al.add("hgdfakjg");
al.add("xhyns");
al.add("yyiouop");
al.add("qq");
al.add("zdff");
Collections.sort(al, new StringComparator());
//int pos = Collections.binarySearch(al, "xhyns", new StringComparator());
int pos = MyCollections.binarySearch(al, "zz", new StringComparator());
for(String s : al)
System.out.println(s);
System.out.println("位置:" + pos);
}
}
class StringComparator implements Comparator<String> {
public int compare(String s1, String s2) {
int num = s1.length() - s2.length();
if(num!=0)
return num;
return s1.compareTo(s2);
}
}
class MyCollections {
private MyCollections(){}
public static <T> int binarySearch(List<T> l, T key, Comparator<T> com) {
int min = 0;
int max = l.size()-1;
int mid = 0;
while(max>=min) {
mid = (min+max)/2;
if(com.compare(key,l.get(mid))>0)
min = mid + 1;
else if(com.compare(key,l.get(mid))<0)
max = mid - 1;
else
return mid;
}
//判断mid位置的元素和key的大小
if(com.compare(key, l.get(mid))>0)
return -mid-2;
return -mid-1;
}
}
分享到:
相关推荐
Java集合框架是Java编程中不可或缺的部分,而Collections工具类则是这个框架中的一个重要工具,它提供了大量静态方法,用于操作各种集合接口(如List、Set、Queue等)的实例。本教程将深入探讨Collections工具类中的...
***mons.collections:包含了 Commons Collections 自定义的一系列公共接口和工具类,这是核心包,提供了许多用于集合操作的实用工具。 ***mons.collections.bag:提供了实现Bag接口的类,Bag是一种特殊类型的集合...
Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...
这三款库在Java开发中应用广泛,特别是在处理对象属性、集合操作和通用工具类时。它们使得代码更加简洁,减少了重复工作,并提高了代码的可读性和可维护性。在实际项目中,根据需求选择合适版本的Apache Commons库,...
Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...
"开发常用工具类"这个主题涵盖了各种不同领域的实用功能,例如字符串处理、日期时间操作、集合操作等。下面将详细介绍这些工具类中的常见知识点: 1. **字符串工具类**: - `StringUtils`:Apache Commons Lang ...
在IO操作方面,Java的java.io包提供了基础的输入输出流,但实际应用中可能需要更高级的功能,如NIO(New IO)提供非阻塞I/O,Apache Commons IO提供了更多实用的IO工具类。 网络编程中,Java.net包提供了Socket和...
在Java编程语言中,工具类集合是一系列实用的类,它们提供了各种通用功能,帮助开发者更高效地编写代码。这些工具类通常包含在Java的`java.util`以及其他相关的包中,如`java.text`,`javax.imageio`,`javax.xml`等...
首先,`sort(List<T> list)`方法是Collections工具类中最常用的排序方法之一,它根据列表中元素的自然排序(natural ordering)来对列表进行排序。自然排序是指列表中的元素必须实现Comparable接口,该接口定义了一...
在Java编程中,工具类(Utility Class)是包含各种静态方法的类,这些方法提供了方便的功能,例如字符串处理、集合操作、数学计算等。这里提到的"28个java常用的工具类源码"包含了Java开发中经常用到的一些实用工具...
此外,`Collections`工具类提供了对集合进行操作的方法,如排序、填充、反转等。 3. **Java.util.concurrent**: 针对多线程编程,此包提供了丰富的并发工具类,如`ExecutorService`、`Future`、`Semaphore`、`...
Collections类是一个工具类,提供了一系列静态方法来操作集合。这些方法包括排序、查找最大/最小值、反转集合等。 - **排序**: - `sort(List<T> list)`:对列表进行排序。 - `reverse(List<T> list)`:反转列表...
在Java编程语言中,工具类集合是一组预定义的、静态方法丰富的类,它们提供了各种实用功能,大大简化了开发人员的工作。这些工具类通常包含在Java标准库(JDK)的不同包中,如`java.util`、`java.lang`、`java.io`等...
在Java编程语言中,工具类(Utility Class)是封装了常用功能的方法集合,它们通常以静态方法的形式提供,便于开发者快速调用。这些工具类极大地提高了开发效率,减少了代码重复,使得程序更加简洁、易读。以下是...
在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据操作、文件处理、数学计算等。它们通常不包含实例变量,只提供静态方法服务,帮助开发者提高代码的复用性和...
Apache Commons Collections是Java开发中常用的一个开源库,它为Java集合框架提供了大量的实用工具类和扩展。"commons-collections-3.2.jar"是该库的版本3.2的实现,它包含了一系列高效、实用且功能丰富的数据结构和...
标题提到的“28个Java常用的工具类”可能是一个集合,包含了各种实用功能的类。以下是一些常见的Java工具类及其功能的详细说明: 1. **String类**:Java内置的String类提供了大量操作字符串的方法,如concat、...
例如,`Collections`类提供了对集合的静态方法,可以进行排序、复制、查找等操作。 2. **java.io.*** 包:提供输入输出流处理,包括文件读写、网络通信、序列化等。例如,`FileInputStream`和`FileOutputStream`...
这里我们将探讨27个常用的Java工具类,以及它们在实际开发中的应用。 1. **Arrays**: 提供了一系列静态方法来操作数组,如排序、复制、填充和比较等。例如,`Arrays.sort()` 可以对数组进行排序,`Arrays.equals()`...
- `com.google.common.*`: Guava是一个强大的Java库,包括`Collections2`, `Preconditions`, `Strings`等工具类,提供了更高级的集合操作,断言,字符串处理等特性。 4. **Java 8及以后版本的新特性** - `java....