Вернуть все биомы, кроме тех, что указаны в аргументах.

771
5
Вообщем надо написать метод, который бы возвращал бы массив биомов, кроме тех, что я указал в аргументах метода.
Код:
public static BiomeGenBase[] biomesWithout(BiomeGenBase... biomesWithout){
    ArrayList<BiomeGenBase> biomes = new ArrayList<BiomeGenBase>();
        for(BiomeGenBase biome : BiomeGenBase.biomeList){
     if(biome != null && biome != biomesWithout){
                biomes.add(biome);
     }
        }
    return (BiomeGenBase[])biomes.toArray();
}
>biome != biomesWithout
Как мне проверить, что биом не биом из аргумента?
[merge_posts_bbcode]Добавлено: 24.03.2014 00:09:11[/merge_posts_bbcode]

Выкрутился вот так:

Код:
public static BiomeGenBase[] biomesWithout(BiomeGenBase... biomesWithout){
        ArrayList<BiomeGenBase> biomes = new ArrayList<BiomeGenBase>();
        for(BiomeGenBase biome : BiomeGenBase.biomeList){
            for(int i = 0; i < biomesWithout.length; i++){
                if(biome != null && biome != biomesWithout[i]){
                    biomes.add(biome);
                }
            }
        }
        return biomes.toArray(new BiomeGenBase[biomes.size()]);
    }


Вопрос исчерпан.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Вот в чём прикол Java 8 и Scala - функциональное программирование и mixin.
Хз, как там в Java 8(почти так-же), но вот Scala:

def biomesWithout(biomes: BiomeGenBase*) = BiomeGenBase.biomeList.filter(!biomes.contains(_))


Да тут даже метода не надо, если один только раз в коде встречается.
[merge_posts_bbcode]Добавлено: 23.03.2014 23:57:21[/merge_posts_bbcode]

Java 8:

public static List<BiomeGenBase> biomesWithout(BiomeGenBase... biomes){ 
  return BiomeGenBase.biomeList.filter(b -> !biomes.contains(b))
}
 
Сверху