Java コレクション内の要素の走査、出力、フィルター、並べ替え

1: 要素をトラバースして出力する

2: 要素の特定の特徴を並べ替える

3: フィルター要素

1: 要素をトラバースして出力する

Java オブジェクト指向プログラミングでは、拡張 for ループを使用して出力コレクション内の要素を走査すると、要素に含まれるすべての情報を出力できます。拡張 for ループの形式は for (データ型変数名: コレクション オブジェクトまたは配列) です

たとえば、以下はリスト コレクションを走査しています (コレクション クラスは people)

For(人 p:人){

System.out.printIn(p);

}

コレクションの出力コンテンツをトラバースするときは、 tostring メソッドをオーバーライドする必要があります。そうしないと、オブジェクトのアドレスしか取得できません。サブクラスが親クラスを継承し、サブクラスが tostring メソッドを書き換える場合は、特に注意してください。親クラスの変数で定義されている場合、親クラスの変数を private で変更することはできません。

2: 要素の特定の特徴を並べ替える

コレクション要素には多くの情報が含まれる可能性があるため、要素を特定の規則に従って並べ替えたい場合は、

たとえば、年齢、身長、体重などの昇順と降順で、compare<> インターフェイスを実装する必要があります(クラスが他の親クラスを継承していない場合は、インターフェイスをクラスに直接実装します。クラスが親クラスを継承する場合は、親クラスにインターフェイスを実装し、必要な方法に従って並べ替えるために CompareTo メソッドをオーバーライドする必要があります。

たとえば、年齢が小さいものから大きいものの順に、コードは次のようになります。

@Override
public int CompareTo(people o) {     return o.getAge() - this.getAge() >= 0 ? -1:1; }

メソッドを書き換えた後は、collections.sort (並べ替えるコレクション) メソッドを呼び出すだけで並べ替えが完了します。

3: フィルター要素

この時点で、オブジェクトを走査して並べ替える方法はすでにわかっていますが、オブジェクトに関するすべての要素またはすべての情報を出力する必要がない場合は、オブジェクトをフィルタリングする必要がある場合があります。

たとえば、コレクション内のすべてのオブジェクトの名前、または上位 10 人の生徒の情報を出力するだけで済み、コードを最適化するだけで済みます。

たとえば、すべてのオブジェクトの名前を出力します
for(people p:peoples){     System. out .println(p.name); }

年齢が 25 を超えるすべての要素オブジェクトを出力します

for(people p:peoples){     if(p.getAge()>25){         System. 出力.println(p);     } }



それ以来、コレクションに対するいくつかの操作を習得しました。以下に、コレクションに関する関連知識を深めるためのコードを示します。

テストクラスは以下の通りです

import java.util.*;
public class test {     public static void main(String[] args) {         List<people> peoples = new ArrayList<>();         peoples.add(new Student("王五", 12345456, "北京大学", 22, "122", "二年生", "12101"));         peoples.add(new Student("李六", 12345654, "北京大学", 25, "123", "二年生", " 12101"));         peoples.add(new Student("李四", 1234356, "大大", 27, "121", " sophomore ", "12101"));         peoples.add(new Student("李七") ", 12345632, "成長中", 23, "124", "二年生", "12101"));         peoples.add(new Student("李八", 123456354, "成長中", 24,"125", "2年生", "         12101")) ; peoples.add(new Teacher("李九", 123123, "大人になった", 40, "コンピューター", "先生"));         System.out








.println(peoples.size()); \\ people.size () はコレクションのサイズを表します
        Collections.sort (peoples); \\並べ替えるメソッドを呼び出す(
        people p : peoples) {                 System.out .println(p) ;         }         for(people p:peoples){             System.out .println (p.name);         }         for(people p:peoples){             if(p.getAddress().equals("Grown up")){ 文字列の内容を比較equals.() メソッドを使用するには                 System. out .println(p);             }         } }     }











父親

public class people 実装 Comparable<people> {     文字列名;     整数の電話番号;     文字列アドレス。子类要重写该变量,则爙不使用個人修饰     年齢;     public people() {     }     public people(文字列名, int 電話番号, 文字列アドレス, int 年齢) {         this.name = 名前;         this.phonenumber = 電話番号;         this.address = 住所;         this.age = 年齢;     public     String getName() {         名前を返します。     public     void setName(String name) {         this.name = 名前;     public     int getPhonenumber() {
























        電話番号を返します。
    public

    void setPhonenumber(int Phonenumber) {         this.phonenumber = 電話番号;     public     String getAddress() {         戻りアドレス;     public     void setAddress(String address) {         this.address = アドレス;     public     int getAge() {         年齢を返します。     public     void setAge(int age) {         this.age = 年齢;     @Override     public String toString() {         return "people{" +                 "name='" + name + '\'' +     "                 ,

























                ", 住所='" + 住所 + '\'' +
                ", 年齢='" + 年齢 + '\'' +
                '}';     @Override     public int CompareTo(people o) {         return o.getAge() - this.getAge() >= 0
    ? -1:1;     } }




学生部門(サブカテゴリー)

public class Student extends people {     private String スコア;     プライベート文字列グレード。     プライベート文字列クラス番号;     public Student() {     }     public Student(String 名前, int 電話番号, String 住所, int 年齢, String スコア, String 成績, String classnumber) {         super(名前, 電話番号, 住所, 年齢);         this.score = スコア;         this.grade = グレード;         this.classnumber = クラス番号;     public     String getScore() {         スコアを返します。     public     void setScore(String スコア) {         this.score = スコア;     パブリック     String getGrade() {
























        成績を返す。
    public

    void setGrade(String Grade) {         this.grade = Grade;     public     String getClassnumber() {         クラス番号を返します。     public     void setClassnumber(String classnumber) {         this.classnumber = クラス番号;     }     @Override     public String toString() {         return "Student{" +                 "score='" + スコア + '\'' +                 ", Grade='" + Grade + '\'' +                 ", classnumber='" + classnumber + '\'' +                 ",




















                ", 住所='" + 住所 + '\'' +
                ", 年齢='" + 年齢 + '\'' +
                '}';
    }
}

教師カテゴリー(サブカテゴリー)

public class Teacher extends people {     private String Majorfield;     プライベート文字列ランク。     public Teacher() {     }     public Teacher(String name, int 電話番号, String address, int age, String Majorfield, String Rank) {         super(名前, 電話番号, 住所, 年齢);         this.majorfield = メジャーフィールド;         this.rank = ランク;     public Teacher(String Majorfield, String Rank) {     this.majorfield         = Majorfield;         this.rank = ランク;     public     String getMajorfield() {         メジャーフィールドを返します。     public     void setMajorfield(String Majorfield) {






















        this.majorfield = メジャーフィールド;
    public

    String getRank() {         ランクを返します。     public     void setRank(String ランク) {         this.rank = ランク;     @Override     public String toString() {         return "Teacher{" + "majorfield=     '                 " + Majorfield + '\'' +                 ", Rank='" + Rank + '\'' +                 ", name='" + name + '\'' +                 ", 電話番号=" + 電話番号 +                 ", 住所='" + アドレス + '\'' +                 ",



















おすすめ

転載: blog.csdn.net/weixin_69764845/article/details/127903288