集合框架的工具类
Collections:sort、max、binarySearch、替换反转、reverseOrder
sort、max 代码:
import java.util.*;
/*
public static <T extends Comparable<? super T>> void sort(<List> list)
{
}
*/
public class code
{
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("asd");
list.add("sdfg");
list.add("we");
list.add("q");
list.add("asd");
sop(list);
Collections.sort(list);
sop(list);
Collections.sort(list, new Strlen());
sop(list);
String max1 = Collections.max(list);
sop(max1);
String max2 = Collections.max(list,new Strlen());
sop(max2);
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
class Strlen implements Comparator<String>
{
public int compare(String s1,String s2) {
if(s1.length()>s2.length())
return 1;
if(s1.length()<s2.length())
return -1;
return s1.compareTo(s2);
}
}
binarySearch 代码:
import java.util.*;
public class code
{
public static void main(String[] args) {
BinarySearch();
}
public static void BinarySearch(){
List<String> list = new ArrayList<String>();
list.add("asd");
list.add("sdfg");
list.add("we");
list.add("q");
list.add("asd");
Collections.sort(list);
sop(list);
int num1 = Collections.binarySearch(list, "we");
int num2 = Collections.binarySearch(list, "aaa");
int num3 = Collections.binarySearch(list, "kkk", new Strlen());
sop(num1);
sop(num2);
sop(num3);
}
public static int Bs1(List<String> list,String key) {
int max, min,mid;
max=list.size()-1;
min=0;
while(min<=max) {
mid=(max+min)>>1;
String str = list.get(mid);
int num = str.compareTo(key);
if(num>0)
max=mid-1;
else if(num<0)
min=mid+1;
else
return mid;
}
return -min-1;
}
//自定方式
public static int Bs2(List<String> list,String key,Comparator<String> cmp) {
int max, min,mid;
max=list.size()-1;
min=0;
while(min<=max) {
mid=(max+min)>>1;
String str = list.get(mid);
int num = cmp.compare(str,key);
if(num>0)
max=mid-1;
else if(num<0)
min=mid+1;
else
return mid;
}
return -min-1;
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
class Strlen implements Comparator<String>
{
public int compare(String s1,String s2) {
if(s1.length()>s2.length())
return 1;
if(s1.length()<s2.length())
return -1;
return s1.compareTo(s2);
}
}
替换反转 代码:
import java.util.*;
public class code
{
public static void main(String[] args) {
Fill1();
Fill2();
}
public static void Fill1(){
List<String> list = new ArrayList<String>();
list.add("asd");
list.add("sdfg");
list.add("we");
list.add("q");
list.add("asd");
sop(list);
Collections.replaceAll(list, "asd", "qq");//替换对应元素
sop(list);
Collections.reverse(list);//反转
sop(list);
}
public static void Fill2(){
List<String> list = new ArrayList<String>();
list.add("asd");
list.add("sdfg");
list.add("we");
list.add("q");
list.add("asd");
Collections.fill(list, "qq");//替换所有元素
sop(list);
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
reverseOrder 代码:
import java.util.*;
public class code
{
public static void main(String[] args) {
orderDemo();
}
public static void orderDemo(){
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new Strlen()));
ts.add("rsd");
ts.add("b");
ts.add("sdfgh");
ts.add("qdfg");
ts.add("kk");
sop(ts);
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
class Strlen implements Comparator<String>
{
public int compare(String s1,String s2) {
if(s1.length()>s2.length())
return -1;
if(s1.length()<s2.length())
return 1;
return s1.compareTo(s2);
}
}