1

I have an ArrayList containing Objects, these objects have multiple values.

Now I would like to split up this list in to mulptiple lists depeding on an int value in the objects.

So if for example:

2 Objects have an int with value 1
3 Objects have an int with the value 3

So the arraylist has 5 objects, and I'd like to get:

2 Arraylists, 1 with the first objects en 1 with the second objects (more if there are more different int values)

Sorry if it is confusing..


You can use different animation values for different screens.For example you can put the same xml file for the animation in values-xhdpi and switch some values.This way all xhdpi devices will load this animation all other devices will load the default animation.

4

2 に答える 2

7

まず、次のようなキャッシュを作成します。Map<Integer, List<YourObjectType>>

次に、各オブジェクトを循環し、整数を使用して上記の にアクセスします。Map値が null の場合は、新しいListを作成して に入れMap、オブジェクトを に追加しますList

最終結果は、2 つのエントリを持つマップになり、それぞれにエントリのリストが含まれ、オブジェクトからの整数が識別子になります。

コードは次のとおりです。

Map<Integer, List<YourObject>> cache = new HashMap<Integer, List<YourObject>>();
for (YourObject yo : yourObjectListArrayWhatever) {
  List<YourObject> list = cache.get(yo.getIntegerValue());
  if (list == null) {
    list = new ArrayList<YourObject>();
    cache.put(yo.getIntegerValue(), list);
  }
  list.add(yo);
} 
于 2013-03-21T12:27:31.963 に答える
0

オブジェクトにint値をどのように格納しますか? Object から派生した実装があると確信しています。その場合、階層の下位ポイントで汎用性を使用する必要があります。

int 値を持つクラス Person があり、サブクラスの Man が Person を拡張し、Woman が Person を拡張し、この ArrayList に男性と女性を入力するとします。次のようにします。

List<Person> pList = new ArrayList<Person>();

ここで、Person クラスに int 値の get メソッドが必要です。たとえば、int 値が人の年齢の場合:

public int getAge() { return age; }

次に、最終的にあなたの質問に答えるために、私は次のように行きます:

List<Person> firstList = new ArrayList<Person>();
List<Person> secondList = new ArrayList<Person>();
for (Person person:pList) {
    if (person.getAge()==1) {
        firstList.add(person);
    }
    else if (person.getAge()==3) {
        secondList.add(person);
    }
}//for

私はあなたの質問に適切に答えたことを願っています。

于 2013-03-21T12:37:41.190 に答える