尝试从另一个无效的
过滤ArrayList我有这个名为listaGrande的ArrayList(bigList的西班牙语)。它包含来自名为Objeto的类的对象,该类具有名为loTengo(iHaveIt)的String。
如果loTengo =“是”或“是”,只有那些单词,没有其他单词,那些标记为Objeto的单词应该形成一个名为inventario(inventory)的新ArrayList。
以下是使用CONFLICTIVE方法的类:
public class FiltraListas { // ListsFilter.
public String registro; // registry.
public ArrayList<Objeto> listaGrande;
public ArrayList<Objeto> inventario; // CONFLICTIVE by being declared here?
public String loTengo;
public Objeto unObjeto; // oneObject
public FiltraListas(String registro) {
this.registro = registro;
listaGrande = new ArrayList<Objeto>();
this.loTengo = "Yes";
}
public ArrayList<Objeto> setInventario() {
for (Objeto cualquiera : listaGrande){ // cualquiera is Spanish for any.
if("YES".equalsIgnoreCase(cualquiera.getLoTengo())) { // FILTER NOT WORKING.
inventario.add(cualquiera);
}
}
return inventario;
}
该类的其余部分包含getInventario,Eclipse自动生成的getter和setter,以及listaGrande的add / remove方法。
这是JUnitTestCase。
public class FiltraListasTest extends TestCase {
private FiltraListas checador;
private Objeto n1;
private Objeto n2;
public void testFiltraListas() {
FiltraListas checa = new FiltraListas("Arranque");
assertEquals("Arranque", checa.registro);
assertTrue(checa.listaGrande instanceof ArrayList);
assertTrue(checa.inventario instanceof ArrayList); // Smooth.
}
public void setup() {
checador = new FiltraListas("Probador"); // Tester.
checador.addToListaGrande(n1); // Two Objeto on
checador.addToListaGrande(n2); // right list.
n1 = new Objeto("Pinzas eléctricas");
n2 = new Objeto("Multímetro");
n1.setLoTengo("yes"); // CONFLICTIVE. Should make setInventario to work.
n2.setLoTengo("Pronto lo compraré"); // I'll buy it soon.
}
public void testListaGrande() {
setup();
ArrayList<Objeto> todasCosas = checador.getListaGrande();
ArrayList<Objeto> pruebaInventario = checador.getInventario();
assertEquals(2, todasCosas.size());
assertEquals(1, pruebaInventario.size()); // Probes to be wrong.
}
}
这是我对Dan的建议的实施。我认为应该工作。但事实并非如此。有什么想法来解决它吗?
感谢。
答案 0 :(得分:2)
您的意思是以下内容吗?:
List<Dice> myInventory = new ArrayList<Dice>();
for (Dice die : bigList) {
if ("YES".equalsIgnoreCase(die.getHaveIt())) {
myInventory.add(die);
}
}
return myInventory;
希望这是你正在寻找的。 p>
答案 1 :(得分:1)
答案 2 :(得分:0)
这是你要找的吗?
public class Dice {
private static ArrayList<String> myInventory;
private static String haveIt;
public void setMyInventory() {
if (haveIt.equals("Yes") || haveIt.equals("yes"))
myInventory = new ArrayList<String>();
else
myInventory = null;
}
}