2016-12-14 5 views
-4

別のクラスから取得したコントローラの値の一覧があります。リストには「ステータス」の値が含まれています。ステータスには、OK、Bad、CRITICALなどの異なる値が格納されます。私はそれぞれの値を抽出しようとしています。 IFリスト値 "status"にOKが含まれている場合は、それを他のものと同じようにOKlistに入れます。以下は私のコードスニペットと私が何をしたかです。リストに特定の値が含まれている場合、リストを別のリストに分割するにはどうすればよいですか?

クラススニペット

public class Album implements Runnable {   
    //doing many stuff then 
    memoryUtilization = 100 - memoryUtilization; 
     if (memoryUtilization <= badThreshold 
        && memoryUtilization > criticalThreshold) { 
     Status = "BAD"; 

      }else if (memoryUtilization <= criticalThreshold) { 
       Status = "CRITICAL"; 

      } 
      else { 
       Status = "OK"; 

      } 

      data.add(new AlbumModel (Status)); 

コントローラスニペット

@Controller 
public class IndexController { 
    @Autowired 
    private AlbumList albumL; 

    public ModelAndView getdata() throws IOException { 

List<AlbumModel> list = albumL.getList(); 
System.out.println(list); 

アウトプット

[Status: OK,Status: OK,Status: OK,Status: OK,Status: OK,Status: OK,Status: OK,Status: OK,Status: OK,Status: OK,Status: BAD,Status: BAD,Status: BAD,Status: BAD,Status: BAD,Status: BAD,Status: BAD,Status: BAD,Status: BAD,Status: CRITICAL,Status: CRITICAL,Status: CRITICAL,Status: CRITICAL,Status: CRITICAL,Status: CRITICAL] 

試行

天気が悪いと判断したクラスでは、ステータスが悪い、またはOKの場合は、各ステータスのリスト値を作成し、その値をIFステートメントのリストに追加してステータス値を決定します。

クラス

public class Album implements Runnable { 
static List<AlbumModel> data = new ArrayList<AlbumModel>(); 
static List<AlbumModel> criticalList = new ArrayList<AlbumModel>(); 
static List<AlbumModel> badList = new ArrayList<AlbumModel>(); 
static List<AlbumModel> okList = new ArrayList<AlbumModel>(); 
//getters and setters  
    /**************doing many stuff ****************/ 
    memoryUtilization = 100 - memoryUtilization; 
     if (memoryUtilization <= badThreshold 
        && memoryUtilization > criticalThreshold) { 

     Status = "BAD"; 
       badList.add(new AlbumModel (Status)); 
      }else if (memoryUtilization <= criticalThreshold) { 

       Status = "CRITICAL"; 
       criticalList.add(new AlbumModel (Status)); 
      } 
      else { 
       Status = "OK"; 
       okList.add(new AlbumModel (Status)); 
      } 

      data.add(new AlbumModel (Status)); 

はその後、私のコントローラクラスで私は値を取得するには、クラスと呼ばれます。これが私の質問を解決する正しい方法でしょうか? Javaの8を使用して

インデックスコントローラー

@Controller 
public class IndexController { 
    @Autowired 
    private AlbumList albumL;  
    public ModelAndView getdata() throws IOException { 
List<AlbumModel> list = albumL.getList();  
List<AlbumModel> albumCritList = Album.getCritList(); 
List<AlbumModel> albumBadList = Album.getBadList(); 
List<AlbumModel> albumOkList = Album.getOkList();  
+0

を繰り返し? – Taelsin

+0

リストを分割したり、リスト全体を3つのうちの1つに追加したいですか? – Akceptor

+0

どのように擬似コードで試しましたか? – haifzhan

答えて

0

、このような何か:

final List<AlbumModel> critcalList = 
     originalList.filter(albumModel -> "CRITICAL".equals(albumModel.getFoo())) 
        .findAny() 
        .orElse(new LinkedList<AlbumModel>()); 

//リンス、あなたはどのようなコードを試してみました他のリストのため

関連する問題