當前位置:首頁 » 編程語言 » javalist排序

javalist排序

發布時間: 2024-09-15 02:55:28

java 怎麼將List裡面數據排序

importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.Comparator;
importjava.util.List;


publicclassArrayListOrder{

publicstaticvoidmain(String[]args){
List<List<Integer>>list=newArrayList<List<Integer>>();
List<Integer>arrayList1=newArrayList<Integer>();
arrayList1.add(2);
arrayList1.add(5);
arrayList1.add(6);
list.add(arrayList1);
List<Integer>arrayList2=newArrayList<Integer>();
arrayList2.add(2);
arrayList2.add(4);
arrayList2.add(6);
list.add(arrayList2);
List<Integer>arrayList3=newArrayList<Integer>();
arrayList3.add(2);
arrayList3.add(6);
arrayList3.add(6);
list.add(arrayList3);
List<Integer>arrayList4=newArrayList<Integer>();
arrayList4.add(2);
arrayList4.add(1);
arrayList4.add(6);
list.add(arrayList4);
for(List<Integer>tmpList:list){
System.out.print(tmpList.get(1)+"");
}
System.out.println("");

//排序
Collections.sort(list,newComparator<List<Integer>>(){
publicintcompare(List<Integer>list1,List<Integer>list2){
//比較每個ArrayList的第二個元素
if(list1.get(1)==list2.get(1)){
return0;
}elseif(list1.get(1)>list2.get(1)){
return1;
}else{
return-1;
}
}
});
for(List<Integer>tmpList:list){
System.out.print(tmpList.get(1)+"");
}
}
}

⑵ java如何讓list按照list裡面的某個欄位排序,list裡面的有很多欄位!

給你個例子看下

importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.Comparator;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;

publicclass${

publicstaticvoidmain(String[]args){

List<Map<String,Integer>>data=newArrayList<Map<String,Integer>>();

init(data);

System.out.println("排序前:");
System.out.println(data);
sort(data);
System.out.println("排序後:");
System.out.println(data);
}

privatestaticvoidsort(List<Map<String,Integer>>data){

Collections.sort(data,newComparator<Map>(){

publicintcompare(Mapo1,Mapo2){

Integera=(Integer)o1.get("PRECOUNTOUT");
Integerb=(Integer)o2.get("PRECOUNTOUT");

//升序
returna.compareTo(b);

//降序
//returnb.compareTo(a);
}
});
}

privatestaticvoidinit(List<Map<String,Integer>>data){

Map<String,Integer>map=newHashMap<String,Integer>();
map.put("COUNTTICKET",1);
map.put("PRECOUNTOUT",2);
data.add(map);

map=newHashMap<String,Integer>();
map.put("COUNTTICKET",6);
map.put("PRECOUNTOUT",7);
data.add(map);

map=newHashMap<String,Integer>();
map.put("COUNTTICKET",8);
map.put("PRECOUNTOUT",5);
data.add(map);

map=newHashMap<String,Integer>();
map.put("COUNTTICKET",2);
map.put("PRECOUNTOUT",3);
data.add(map);
}
}

⑶ java 怎麼將List裡面數據排序

學生實體類,包含姓名和年齡屬性,

比較時先按姓名升序排序,如果姓名相同則按年齡升序排序。

⑷ java的list集合如何根據對象中的某個欄位排序

下面的代碼是根據學生年齡排序學生list 的一個例子:

importjava.util.ArrayList;
importjava.util.List;

classStudent{

privateStringname;

privateintage;

publicStudent(Stringname,intage){
this.name=name;
this.age=age;
}

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}

publicintgetAge(){
returnage;
}

publicvoidsetAge(intage){
this.age=age;
}

@Override
publicStringtoString(){
return"Perosn[name="+name+",age="+age+"]";
}
}

publicclassApp{

publicstaticvoidmain(String[]args){

List<Student>students=newArrayList<>();

students.add(newStudent("abc",12));
students.add(newStudent("bcd",20));
students.add(newStudent("cde",17));
students.add(newStudent("def",25));
students.add(newStudent("efg",15));

students.sort((x,y)->Integer.compare(x.getAge(),y.getAge()));

for(Studentstu:students){
System.out.println(stu);
}
}
}

運行結果:

⑸ java 中 List<T>如何按照T中的一個欄位排序

可以通過以下工具類進行實現:
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* List按照指定欄位排序工具類
*
* @param <T>
*/
public class ListSortUtil<T> {
/**
* @param targetList 目標排序List
* @param sortField 排序欄位(實體類屬性名)
* @param sortMode 排序方式(asc or desc)
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public void sort(List<T> targetList, final String sortField, final String sortMode) {

Collections.sort(targetList, new Comparator() {
public int compare(Object obj1, Object obj2) {
int retVal = 0;
try {
//首字母轉大寫
String newStr=sortField.substring(0, 1).toUpperCase()+sortField.replaceFirst("\\w","");
String methodStr="get"+newStr;

Method method1 = ((T)obj1).getClass().getMethod(methodStr, null);
Method method2 = ((T)obj2).getClass().getMethod(methodStr, null);
if (sortMode != null && "desc".equals(sortMode)) {
retVal = method2.invoke(((T) obj2), null).toString().compareTo(method1.invoke(((T) obj1), null).toString()); // 倒序
} else {
retVal = method1.invoke(((T) obj1), null).toString().compareTo(method2.invoke(((T) obj2), null).toString()); // 正序
}
} catch (Exception e) {
throw new RuntimeException();
}
return retVal;
}
});
}

}

Collections.sort(list.);//升序

⑹ java對List去重並排序,如何快速地去掉兩個

Java8開始,對數值,集合等提供了Stream流操作,可以方便的對集合進行操作.

比如 篩選,過濾,去重, 映射, 排序,規約,收集 等操作

簡單的參考代碼如下


importjava.util.Arrays;
importjava.util.List;
importjava.util.stream.Collectors;
//使用Java8的Stream特性和Java8的Lambda語句
publicclassDemo{
publicstaticvoidmain(String[]args){
//需求:集合去重,排序,得到一個新集合裡面的元素是之前元素的平方
List<Integer>list=Arrays.asList(5,2,2,1,3,4);
List<Integer>listResult= list
.stream()//得到流
.distinct()//去重5,2,1,3,4
.sorted()//自然排序,也可以自定義排序規則1,2,3,4,5
.map(x->x*x)//每個元素求平方1,4,9,16,25
.collect(Collectors.toList());//收集並返回

System.out.println(listResult);//1,4,9,16,25
}
}
熱點內容
ftp上傳流程 發布:2024-11-25 00:18:27 瀏覽:89
安卓服光遇什麼時候上線的 發布:2024-11-25 00:13:22 瀏覽:918
80萬能買到酷路澤的什麼配置 發布:2024-11-25 00:10:57 瀏覽:336
新浪微博中如何修改密碼 發布:2024-11-25 00:10:52 瀏覽:100
iphone訪問pc 發布:2024-11-24 23:53:43 瀏覽:480
編譯不能顯示 發布:2024-11-24 23:40:52 瀏覽:698
人體編程 發布:2024-11-24 23:40:51 瀏覽:304
謎妹緩存的文件在哪 發布:2024-11-24 23:38:12 瀏覽:146
伺服器自動清理緩存 發布:2024-11-24 23:37:14 瀏覽:663
中國移動網路如何查密碼 發布:2024-11-24 23:37:06 瀏覽:581