對ArrayList中的自定義型別進行搜尋

2021-09-22 10:52:37 字數 1464 閱讀 2810

一般情況下我只需要使用arraylist.contains()方法就可以判斷某個元素是否存在,但如果arraylist中的為自定義的類就需要自己實現,如下面例子:

如我們有乙個類:

public class 

employee

public string employeename

public

datetime birthdate

}
我們要實現對arraylist中儲存的employee 進行查詢。先定義兩個列舉:

public enum 

memtype

;public enum

cmpoperator

下面是具體實現:

public static int search(arraylist objarr, string valuetosearch, string fieldname, memtype memtype, cmpoperator comop)

for (int i = 0; i < objarr.count; i++)

break;

case memtype.datetimetype:

switch (comop)

break;

case cmpoperator.greaterthan:

if (convert.todatetime(str).compareto(convert.todatetime(valuetosearch)) > 0)

break;

case cmpoperator.lessthan:

if (convert.todatetime(str).compareto(convert.todatetime(valuetosearch)) < 0)

break;

}break;

case memtype.integertype:

switch (comop)

break;

case cmpoperator.greaterthan:

if (convert.toint32(str) > convert.toint32(valuetosearch))

break;

case cmpoperator.lessthan:

if (convert.toint32(str) < convert.toint32(valuetosearch))

break;

}break;

case memtype.stringtype:

if (str.contains(valuetosearch))

break;}}

return -1;

}

測試**如下:

static void main(string args)

對ArrayList的自定義元素進行排序

arraylist的sort icomparer 方法使用指定的比較器對整個arraylist中的元素進行排序。向arraylist中新增的自定義元素,當需要排序時,需要公開比較元素方法。以下是乙個例子。先宣告需要新增到arraylist的自定義元素型別one public class one 公開...

自定義實現ArrayList

package com.mylist public class myarraylist 返回list的大小 return public int size 判斷是否為空 return public boolean isempty 建立指定大小的list集合 param init public myar...

ArrayList實現自定義排序

arraylist中存在sort排序方法,只要你實現了comparator的介面,按照你自己的排序業務進行實現,你只要告訴這個介面按照什麼型別進行排序就ok了。這種方式類似於設計模式中的策略模式,把流程劃分好,具體的業務邏輯由使用者指定 實現 public class comparatortest ...