import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
public class StringComparator implements Comparator<String>
{
public static void main(String[] args)
{
ArrayList<String> array = new ArrayList<String>();
array.add("3");
array.add("1");
array.add("2");
Collections.sort(array, new StringComparator(StringComparator.DESC));
for (String str : array)
{
System.out.println(str);
}
System.out.println();
String all[] = { "2", "3", "1" };
Arrays.sort(all, new StringComparator(StringComparator.ASC));
for (String str : all)
{
System.out.println(str);
}
}
public final static int ASC = 1;
public final static int DESC = -1;
private int NOA = 1;
private int NOB = -1;
public StringComparator()
{
}
public StringComparator(int order)
{
if (StringComparator.DESC == order)
{
NOA = -1;
NOB = 1;
}
}
public int compare(String o1, String o2)
{
if (o1.compareTo(o2) > 0)
{
return NOA;
} else if (o1.compareTo(o2) < 0)
{
return NOB;
} else
{
return 0;
}
}
}
分享到:
相关推荐
Java_Bubble_Sort Java_ClassLoader Java_Copy_On_Write Java_Exception Java_ExecutorService Java_IO Java_JVM_Monitor Java_Jstat Java_Lambda Java_Memory Java_Node Java_Photo_Base64AndZip Java_Request_Get...
### Java的String用法类型总结 #### 一、概述 在Java编程语言中,`String` 类是最常用的数据类型之一,用于表示不可变的字符序列。由于字符串在实际开发中的重要性和高频使用特性,深入理解并掌握其用法至关重要。...
4. **排序**:遍历Map,转换为List<Map.Entry<String, Integer>>,然后使用`Collections.sort()`和自定义比较器,按照值(出现次数)降序排序。 5. **输出结果**:遍历排序后的列表,打印文件名及其出现次数。 在...
public static void main(String[] args) { int[] array = {5, 2, 8, 1, 9}; System.out.println("Original array:"); printArray(array); selectionSort(array); System.out.println("\nSorted array:"); ...
如`Arrays.sort(names, String::compareToIgnoreCase)`。 5. **Optional类**:为了解决空指针异常,Java 8引入了`Optional`类,它提供了一种更安全的方式来表示可为空的对象。`Optional<String> optionalName = ...
public static void stringSort(String[] arr) { // 采用冒泡排序 // ... } // ... } ``` ### 2. 子串计数 在**字符串练习二**中,我们学习了如何计算一个子串在字符串中出现的次数。`indexOf`方法用于查找...
10. **集合框架的改进**:`Collections.sort()`方法现在支持自定义比较器的并发排序,`ArrayList`和`LinkedList`的构造函数也有所优化。 这些只是JDK7 API中的一部分重要改动,实际文档中包含的远不止这些。通过...
public static void main(String[] args) { int maxNum = 100; // 要求解的范围 List<Integer> primes = new ArrayList(); for (int i = 2; i ; i++) { if (isPrime(i)) primes.add(i); } Collections.sort...
例如,`java.lang`是基础包,包含了所有Java程序默认导入的类,如`String`、`Object`和`System`。`java.util`包提供了许多实用工具类,如集合框架(Collections Framework)、日期和时间处理(Date and Time)以及...
字符串处理是编程中最常见的任务之一,Java的 `String` 类提供了许多方法,但有时我们需要更高级的功能。工具类可能包含对字符串拼接、分割、查找、替换、格式化等操作的优化,比如避免创建不必要的中间对象,提高...
3. **字符串编码、译码**:Java中的`String`类提供了许多方法处理字符编码和解码,如`getBytes()`用于获取字符串的字节数组,`new String(byte[], charset)`用于指定字符集创建字符串。 4. **JLabel换行**:在Swing...
Java的`Files`类和`Stream` API可以用来高效地遍历目录和文件,`String`类的`contains()`或`matches()`方法用于查找关键词。 9. **菜单**:菜单系统是GUI应用的标准部分,Java的`JMenuBar`和`JMenuItem`类可以帮助...
sort(new Sort(Sort.Direction.ASC, "$distance")) )); List<User> users = new ArrayList(); for (Document doc : iterable) { User user = User.fromJson(doc.toJson()); users.add(user); } return ...
这简化了代码,如`Collections.sort(names, String::compareToIgnoreCase);` 5. **日期与时间API**: Java 8中引入了全新的java.time包,替换了过时的`java.util.Date`和`java.util.Calendar`。新API包括`...
在Java编程领域,Map接口是Java集合框架的重要组成部分,它提供了键值对(key-value pairs)的存储方式。HashMap作为Map的一个实现,以其高效的查找性能和灵活的使用方式深受开发者喜爱。本篇将深入探讨Java中如何对...
String name; int age; // 构造函数,getters和setters省略 } ``` - 我们可以创建一个`AgeComparator`类实现`Comparator<Person>`接口: ```java class AgeComparator implements Comparator<Person> { @...
除了手动实现排序算法外,Java还提供了内置的排序方法,如`Arrays.sort()`,这是一种更高效且易于使用的排序方法。 **示例代码**: ```java import java.util.Arrays; public class Sort { public static void ...
总结起来,`Collections.sort()`是Java中对List进行排序的标准工具,它支持自然排序和自定义排序。了解其工作原理和优化技巧,可以帮助我们在编程实践中更高效地处理数据。通过阅读和理解`Collections.sort()`的源码...
- `sort(List<T> list)`:对集合进行排序。 - `shuffle(List<T> list)`:打乱集合中的元素顺序。 - `reverse(List<T> list)`:反转集合中的元素顺序。 #### 二、泛型 **2.1 什么是泛型** 泛型是一种在编译时...
例如,`Collections.sort()`方法接受`List<? extends Comparable<? super T>>`作为参数,这样可以对任意实现了Comparable接口的列表进行排序。 6. **类型推断** 自Java 7开始,编译器可以自动推断泛型类型,称为...