package cn.jason.test;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
import java.util.Set;
import java.util.TreeSet;
public class Test {
public static void main(String[] args) {
sortStringByLength();
}
}
public static void sortStringByLength() {
/*
* 练习1;对多个字符串(不重复)按照长度排序,由短到长。
* 思路: 1,多个字符串,用容器
* 2.不重复,Set
* 3.需要排序,用TreeSet
*/
Set set = new TreeSet(new ComparatorByLengh());
/*
* 练习1;对多个字符串(不重复)按照长度排序,由短到长。
* 思路: 1,多个字符串,用容器
* 2.不重复,Set
* 3.需要排序,用TreeSet
*/
Set set = new TreeSet(new ComparatorByLengh());
set.add("haha");
set.add("abc");
set.add("zz");
set.add("nba");
set.add("xixixi");
set.add("abc");
set.add("zz");
set.add("nba");
set.add("xixixi");
for (Object obj : set) // 遍历
{
System.out.println(obj);
}
}
/*
* 练习2:对多个字符串(重复),按照长度排序
* 思路:
* 1.重复,可以存储到数组,list,这里先选择数组
*/
public static void sortStringByLength2()
{
String strs[]={"nba","haha","abccc","zero","xixi","nba","haha","abccc","cctv","zero"};
//自然排序可以使用String类中的compareTo方法
//但是现在要的是长度排序,就需要比较器
//定义一个按照长度排序的比较器
Comparator comp = new ComparatorByLengh();
//排序就需要循环和位置置换
for(int x=0;x<strs.length;x++)
{
for(int y=x+1;y<strs.length;y++)
{
//O if(strs[x].compareTo(strs[y])>0)}
if(comp.compare(strs[x], strs[y])>0){
swap(strs,x,y);
}
}
for(String s:strs)
{
System.out.println(s);
}
}
}
{
System.out.println(obj);
}
}
/*
* 练习2:对多个字符串(重复),按照长度排序
* 思路:
* 1.重复,可以存储到数组,list,这里先选择数组
*/
public static void sortStringByLength2()
{
String strs[]={"nba","haha","abccc","zero","xixi","nba","haha","abccc","cctv","zero"};
//自然排序可以使用String类中的compareTo方法
//但是现在要的是长度排序,就需要比较器
//定义一个按照长度排序的比较器
Comparator comp = new ComparatorByLengh();
//排序就需要循环和位置置换
for(int x=0;x<strs.length;x++)
{
for(int y=x+1;y<strs.length;y++)
{
//O if(strs[x].compareTo(strs[y])>0)}
if(comp.compare(strs[x], strs[y])>0){
swap(strs,x,y);
}
}
for(String s:strs)
{
System.out.println(s);
}
}
}
private static void swap(String[] strs, int x, int y) {
String temp = strs[x];
strs[x] = strs[y];
strs[y] = temp;
}
}
String temp = strs[x];
strs[x] = strs[y];
strs[y] = temp;
}
}