ホームページ  >  記事  >  Java  >  Javaでリスト要素をソートするメソッド例を詳しく解説

Javaでリスト要素をソートするメソッド例を詳しく解説

怪我咯
怪我咯オリジナル
2017-07-02 10:22:561512ブラウズ

この記事では、主にJavaでリスト要素をソートする方法について詳しく説明しています。Java入門の基礎知識です。必要な方は参考にしてください。

Java Collection Frameworkで定義されているList実装。 Vector、ArrayList、LinkedList が含まれます。これらのコレクションは、オブジェクトのグループへの

インデックス付き アクセスを提供します。 要素の追加と 削除のサポートを提供します。ただし、要素の並べ替えのサポートは組み込まれていません。 java.util.Collections クラスの sort() メソッドを使用して List 要素を並べ替えることができます。 List オブジェクトをメソッドに渡すことも、List と Comparator を渡すこともできます。リスト内の要素がすべて同じ型で、クラスが Comparable インターフェイスを実装している場合は、単に Collections.sort() を呼び出すことができます。このクラスが Comparator を実装していない場合は、並べ替えのためにメソッド sort() に Comparator を渡すこともできます。デフォルトの並べ替え順序を使用したくない場合は、sort() メソッドに Comparator を渡して並べ替えることもできます。

1. 比較されるオブジェクトは Comparable インターフェイスを実装します

public class Student implements Comparable { 
 private int id; 
 private int age; 
 private String name; 
 public Student(int id){ 
  this.id=id; 
 } 
 public int getId() { 
  return id; 
 } 
 
 public void setId(int id) { 
  this.id = id; 
 } 
 
 public int getAge() { 
  return age; 
 } 
 
 public void setAge(int age) { 
  this.age = age; 
 } 
 
 public String getName() { 
  return name; 
 } 
 
 public void setName(String name) { 
  this.name = name; 
 } 
 
  
  
 public static void main(String args[]){ 
  List<Student> list=new ArrayList<Student>(); 
  for(int i=1000;i>0;i--){ 
   list.add(new Student(i)); 
  } 
   
  Collections.sort(list); 
  for(Student s: list){ 
   System.out.println(s.getId()); 
  } 
 } 
 
 public int compareTo(Object o) { 
  if(o instanceof Student){ 
   Student s=(Student)o; 
   if(this.id>s.id){ 
    return 1; 
   } 
   else{ 
    return 0; 
   } 
  } 
  return -1; 
 } 
 
}

2. Collections.sort(Object o, Comparator c) を使用します

public class JiaMenuComparator implements Comparator{ 
 
 public int compare(Object o1, Object o2) { 
  if(null!=o1&&null!=o2) 
  { 
   JiaMenu menu1=(JiaMenu)o1; 
   JiaMenu menu2=(JiaMenu)o2; 
   if(menu1.getId()<menu2.getId()){ 
    return 1; 
   }else { 
    return 0; 
   } 
  } 
  return 0; 
 } 
  
}

3. List 要素内の複数の属性を並べ替えます (commons -beanutils を使用します)。 commons-beanutils
クラスライブラリ JavaBeans をソートするために使用できる BeanComparator クラスがあります。ただし、このクラスは一度に 1 つのプロパティのみを並べ替えることができます。以下は、BeanComparator を使用して JavaBean の複数のプロパティを並べ替える例です。これは非常に簡単です。

以上がJavaでリスト要素をソートするメソッド例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。