私は以下のようなメソッドを持っています。このメソッドは2つのarraylist( "eventList"と "emailList")を含んでいます。2 ArrayListを返す方法同じメソッドから
答えて
を2つのリストフィールドだけを持つオブジェクトにそれらを追加します。
また、2リストのマップを返すこともできます。それぞれのマップには固有のキーがあります。
をリスト「eventList」と「emailList」の両方を取得する方法
List<EmailUID> emailid=SharedEvent.getEmailUid(filter, uri, exchWD, EmailShare);
public static List<EmailUID> getEmailUid(Filter filter, String uri, NexWebDav exchWD,
List<String> emailShare)
List eventsToday = null;
List<EmailUID> arrayList = new ArrayList<EmailUID>();
List<EmailUID> emailList = new ArrayList<EmailUID>();
List<EmailUID> eventList = new ArrayList<EmailUID>();
for (String email : emailShare) {
String uris = uri + email + "/events/";
InputStream stream = null;
try {
stream = exchWD.get(uris);
BufferedReader br = new BufferedReader(new InputStreamReader(stream));
CalendarBuilder builder = new CalendarBuilder();
net.fortuna.ical4j.model.Calendar calendar = builder.build(br);
//eventsToday.add(email);
eventsToday = (List<?>) filter.filter(calendar.getComponents(Component.VEVENT));
arrayList=getEmailUID(eventsToday,email);
emailList.addAll(arrayList);//
eventList.addAll(eventsToday);//
} catch (ParserException e) {
LOGGER.error("Parse Exception"+e.getMessage());
} finally {
IOUtils.closeQuietly(stream);
}
}
//return eventList;
return emailList;
}
これは、単一の関数から2 return statement
ことはできませんが、あなたは新しいMap
またはList
にラップすることができますし、2つのArrayListを返すことができます。
public Map<String,List<EmailUID>> getList()
List<EmailUID> emailList = new ArrayList<EmailUID>();
List<EmailUID> eventList = new ArrayList<EmailUID>();
...
Map<String,List<EmailUID>> map =new HashMap();
map.put("emailList",emailList);
map.put("eventList",eventList);
return map;
}
List<EmailUID>
オブジェクト、すなわちList<List<EmailUID>>
のリストを作成します。 これにスーパーリストにあなたのリスト(eventList
およびemailList
)を追加してください。そして、このスーパーリストを返す。
このsuperList.get(0); //refers to eventlist
(仮にsuperList
はあなたのメソッドから返されるとevenlist
はそのリストの最初の項目でいた)を使用、後でevenlist
にアクセスするには:あなたが本当にしている場合、あなたがラップする可能性がまあ
これをJavaで簡単に行う方法はありません。両方の要素を含む小さなラッパークラスを作成し、両方のリストのリスト、両方のリストのセット、または両方のリストで2つのエントリを含むMap>を返すことができます。
2つのリストをメンバーとして持つクラスを作成し、そのクラスオブジェクトをリストで返すことができます。
ただ配列に戻すことができます。
public static List[] getEmailUid(Filter filter, String uri, NexWebDav exchWD,
List<String> emailShare) {
//
// Method body
//
return new List[] { eventList, emailList };
}
メソッドの署名を変更する必要があります。選択された戻り値の型に基づいて
ArrayList<String>[]
OR
ArrayList<ArrayList<String>>
に戻り値の型を変更し、コードを編集します。配列が戻り、追加、次の行の前に、戻り値の型として選択されている場合
:
ArrayList<String>[] arr = new ArrayList<String>[2];
arr[0] = eventList;
arr[1] = emailList;
return arr;
同様に、第二のオプションのためのコードを追加することができます。さらなる助けが必要な場合はお知らせください。
- 1. 2 ArrayListと同じArrayList間の戻り値を返します
- 2. 同じクラスから同じメソッドを2回オーバーライド
- 3. 同じメソッドから文字列とintを返す
- 4. Arraylistは非同期メソッドでnullを返していますか?
- 5. Javaの同じクラスからメソッドを呼び出す方法は?
- 6. 非同期メソッドからクラスを返す方法
- 7. Pythonで非同期メソッドから値を返す方法は?
- 8. メソッドから非同期の結果を返す方法は?
- 9. onResponseコールバックからデータを取得し、同じメソッドで返す
- 10. KotlinはFactoryメソッドから同じオブジェクトを返します
- 11. クライアントから同じ接続に情報を返す方法
- 12. 同じクラスのオブジェクト内で同じメソッドを繰り返す
- 13. arraylistを同じサイズの複数のarraylistに分割する方法は?
- 14. 非同期mvc .net:非同期メソッドからビューを返す方法
- 15. doctrine2 findメソッド同じオブジェクトを返す
- 16. onDataChangedメソッドからデータを返す方法
- 17. VBScript関数からArrayListを返す方法
- 18. arrayList内の同じ値の数をカウントする方法
- 19. ArrayList内の同じ要素を検索する方法は?
- 20. aspx.csから同じプロジェクトの別のaspx.csにメソッドを呼び出す方法は?
- 21. ArrayListのArrayListから2次元配列を取得する方法は?
- 22. Javaで2つのArrayListを返す方法
- 23. 複数のスレッドで同じarraylistにアクセスする方法
- 24. 2つのメソッド参照が同じメソッドを参照しているかどうかを確認する方法?
- 25. SchedularFactoryは新しいメソッドで同じインスタンスを返しますか
- 26. デザインパターン:Javaでほぼ同じ2つのメソッドから重複コードを減らす
- 27. 同じオブジェクトの同期メソッドから同期メソッドを呼び出す
- 28. StartActivityForResultから返す同じアクティビティ
- 29. HashMapを使用してキャッシュから同じキーに同じオブジェクトを返す方法
- 30. のJavaで、別のJVMから同じJNIメソッドにアクセスする方法
ありがとうございます –