JAVA问题 ,1. LinkedList 里面怎么排序 2. 怎么范围查找

JAVA问题 ,1. LinkedList 里面怎么排序 2. 怎么范围查找,第1张

1、为什么要在java里排序和范围查找,大批量数据效率很低,放在数据库里做排序和范围查找是明智的

2、真要java的话

(1)排序用Collectionssort();方法

(2)范围查找可以遍历判断查找

乱码问题,需要转码,在jsp页面最上面把gb2312改成utf-8,并且在servlet里面responsesetcharcacterencoding("utf-8"),requestsetcharcacterencoding("utf-8"),

如果按照数据库自己排序,会按照中文的拼音进行排序(A-Z)有实验过。如果要实现楼主这样的功能。我建议,增加两个字段,分别是等级(level,最好是约定一个与A级B级对应的数字,如A级填1)、班级号(classno,班级 填,1,2,3代表1班2班3班),两个字段就可以确定一个班级。然后SQL语句为 select 查询的内容 from 表名 order by level,classno (先按level,后按classno排序)

自己写排序方法,效率最高,因为sort只有一个这样的排序,在C#里面还有一个倒置的方法,在java里面没有,如果我们想使用sort,还需要自己写一个倒置的算法,这样算下来就没有自己写这个排序算法效率高了

呵呵,另外事实上算法这个问题的效率高低,并不是绝对的~~

sort用的是一种优化的快速排序

排序算法可能根据你的数据量的大小来判断效率高低,我们常说的算法的高低,比如我们说A排序算法比B排序算法的效率高,这是在所有的情况下,也就是说在大数统计的情况下发生

并不见得,我对任意的一组排序A的效率都比B的效率高?明白不?

第一种方法,就是list中对象实现Comparable接口,代码如下:

public class Person implements Comparable<Person> {

private String name;

private Integer order;

/

@return the name

/

public String getName() {

return name;

}

/

@param name

the name to set

/

public void setName(String name) {

thisname = name;

}

/

@return the order

/

public Integer getOrder() {

return order;

}

/

@param order

the order to set

/

public void setOrder(Integer order) {

thisorder = order;

}

@Override

public int compareTo(Person arg0) {

return thisgetOrder()compareTo(arg0getOrder());

}

}

public static void main(String[] args) {

List<Person> listA = new ArrayList<Person>();

Person p1 = new Person();

Person p2 = new Person();

Person p3 = new Person();

p1setName("name1");

p1setOrder(1);

p2setName("name2");

p2setOrder(2);

p3setName("name3");

p3setOrder(3);

listAadd(p2);

listAadd(p1);

listAadd(p3);

Collectionssort(listA);

for (Person p : listA) {

Systemoutprintln(pgetName());

}

}

第二种方法,就是在重载Collectionssort方法,代码如下:

public class Person {

private String name;

private Integer order;

/

@return the name

/

public String getName() {

return name;

}

/

@param name

the name to set

/

public void setName(String name) {

thisname = name;

}

/

@return the order

/

public Integer getOrder() {

return order;

}

/

@param order

the order to set

/

public void setOrder(Integer order) {

thisorder = order;

}

}

public static void main(String[] args) {

List<Person> listA = new ArrayList<Person>();

Person p1 = new Person();

Person p2 = new Person();

Person p3 = new Person();

p1setName("name1");

p1setOrder(1);

p2setName("name2");

p2setOrder(2);

p3setName("name3");

p3setOrder(3);

listAadd(p2);

listAadd(p1);

listAadd(p3);

Collectionssort(listA, new Comparator<Person>() {

public int compare(Person arg0, Person arg1) {

return arg0getOrder()compareTo(arg1getOrder());

}

});

for (Person p : listA) {

Systemoutprintln(pgetName());

}

}

两次执行的结果都是:

name1

name2

name3

以上就是关于JAVA问题 ,1. LinkedList 里面怎么排序 2. 怎么范围查找全部的内容,包括:JAVA问题 ,1. LinkedList 里面怎么排序 2. 怎么范围查找、java如何实现mysql数据库有中文字段中文排序、java 中文一,二,到十,怎么排序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9541461.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存