傻瓜方法
定义26字母数组
String[] letter = {A,B,C};
List<String> newList = new LinkedList<String>();//这种LIST是记录顺序的,怎么进去的就怎么出来
遍历字母数组
1:for(int i=0;i<letterlength;i++){
遍历list
2: for(String str : list){
判断如果首字母相同,就放到MAP下或者新的LIST下面,这里采用新LIST
newListadd(str);
//得到后,中断循环2
break;
}
}
循环完后,再遍历newList就会是你要的结果了先要设定list的排序规则 意思是要建立一个比较器 这个比较器就是装的两个中文的比较规则(按拼音首字母排序)
然后调用集合类的排序方法对list进行排序就行了。。。
汉字取拼音首字母有很多方法 你去网上搜下大把代码
bean的一样啊 举个例子吧:
class mybean implements Comparator
{
private String funcName;
public mybean()
{
}
public mybean(String func)
{
thisfuncName = func;
}
public void setFuncName( String funcName)
{
thisfuncName = funcName;
}
public String getFuncName()
{
return thisfuncName;
}
public int compare(mybean o1, mybean o2)
{
String fname1 = o1getFuncName();
String fname2 = o2getFuncName();
//下面对fname和fnam2进行比较 比较规则是取fname1和fname2的拼音首字母进行比较 如果fname1的拼音首字母较大 则返回1 否则返回-1 相等返回0
}
}
然后 List<mybean> al = new ArrayList<mybean>();
aladd(new mybean("中国"));
aladd(new mybean("美国"));
最后再调用Collectionssort(al,new mybean());就可以对al中的mybean进行排序
分析问题,集合中每一个元素都含有数字,需要得到里面的数字存入一个集合或者数组中
循环遍历字符串,根据下标判断每一个字符是否是数字,是的话加入一个空的字符串中,遍历一遍后得到原字符串中的数字字符串,转换成数字存入数组,进行升序排序
import javautilArrayList;import javautilArrays;
public class Test20 {
public static int getNum(String s) {// 获取字符串中的数字
String num = "";
for (int i = 0; i < slength(); i++) {
if (scharAt(i) >= '0' && scharAt(i) <= '9') {// 遍历判断是否为数字
num += scharAt(i);
}
}
return IntegerparseInt(num);
}
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();// 字符串集合
listadd("abc123");
listadd("我是栗子1");
listadd("我是栗子2");
listadd("我是栗子3是栗子4");
listadd("栗子100"); // 例子
int[] array = new int[listsize()];// 定义一个数组用来存放数字
for (int i = 0; i < listsize(); i++) {
array[i] = getNum(listget(i));// 遍历集合,调用方法获得里面的数字并存入数组
}
Arrayssort(array);// 升序排序
for (int i : array) {
Systemoutprintln(i);// 遍历输出
}
}
}结果:1
2
34
100
123
下面的代码是根据学生年龄排序学生list 的一个例子:
import javautilList;
class Student {
private String name;
private int age;
public Student(String name, int age) {
thisname = name;
thisage = age;
}
public String getName() {
return name;
}
public void setName(String name) {
thisname = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
thisage = age;
}
@Override
public String toString() {
return "Perosn [name=" + name + ", age=" + age + "]";
}
}
public class App {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
studentsadd(new Student("abc", 12));
studentsadd(new Student("bcd", 20));
studentsadd(new Student("cde", 17));
studentsadd(new Student("def", 25));
studentsadd(new Student("efg", 15));
studentssort((x, y) -> Integercompare(xgetAge(), ygetAge()));
for (Student stu : students) {
Systemoutprintln(stu);
}
}
}
运行结果:
用 Collectionssort()排序,给你个例子,你参考下
import javautilArrayList;import javautilCollections;
import javautilComparator;
import javautilList;
public class $ {
public static void main(String[] args) {
List<Bean> data = new ArrayList<Bean>();
dataadd(new Bean("aaaaa", 20));
dataadd(new Bean("bbbbb", 10));
Systemoutprintln("排序前:" + data);
Collectionssort(data, new Comparator<Bean>() {
public int compare(Bean o1, Bean o2) {
return o1getName()compareTo(o2getName());
}
});
Systemoutprintln("按name升序:" + data);
Collectionssort(data, new Comparator<Bean>() {
public int compare(Bean o1, Bean o2) {
return o2getName()compareTo(o1getName());
}
});
Systemoutprintln("按name降序:" + data);
Collectionssort(data, new Comparator<Bean>() {
public int compare(Bean o1, Bean o2) {
return o1getAge() - o2getAge();
}
});
Systemoutprintln("按age升序:" + data);
Collectionssort(data, new Comparator<Bean>() {
public int compare(Bean o1, Bean o2) {
return o2getAge() - o1getAge();
}
});
Systemoutprintln("按age降序:" + data);
}
}
class Bean {
private String name;
private int age;
public Bean(String name, int age) {
thisname = name;
thisage = age;
}
public String getName() {
return name;
}
public void setName(String name) {
thisname = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
thisage = age;
}
public String toString() {
return "[" + name + "," + age + "]";
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)