防止列表中的重复项打印到单元格 table gwt
Preventing duplicate items in list from printing to cell table gwt
如果我有一个名为 'TestClass' 的 class,其中充满了 getter 和 setter,然后我在另一个 class 中的 class 对象上设置了一些属性,如下所示:
TestClass testClass = new TestClass();
testClass.setAppId("id");
testClass.setStatus("Status");
testClass.setMessage("Message");
List<TestClass> list = dataProvider.getList();
然后,在将此对象添加到我的 java 列表之前,我必须确保它不存在于列表中以避免重复。
为实现这一点,我执行以下检查以查看相应值的所有三个属性是否存在于列表中的 testClass 对象中。如果他们不这样做,那么它可能会被添加到列表中。
if(!list.contains(testClass.getAppId().equals("id")) &&
!list.contains(testClass.getStatus().equals("Status")) &&
!list.contains(testClass.getMessage().equals("Message"))) {
list.add(testClass);
}
dataProvider.refresh();
以上代码位于点击处理程序中,因此仅在点击按钮时执行。
那么,尽管我试图阻止重复项进入列表是徒劳的,但为什么我无法阻止重复记录被添加到我在 gwt 中的单元格 table?
我认为列表逻辑是问题所在吗?
感谢您的帮助,希望我已经足够全面了。
testClass.getAppId().equals("id")
returns true or false, weather your id equals to "id" or not.然后检查您的列表是否包含此调用的 return。这就是为什么您未能在列表中只维护唯一的项目。
您可以在 testClass class 中创建一个 equals/compare 方法,以便在此函数中定义要插入的项目是否已存在于您的结构中。
作为一般方法,最好使用散列来确保您的数据结构始终存储唯一项。
您的 testClass.getAppId().equals("id")
呼叫 returns true
或 false
。您的列表不 "contain" true
或 false
因此条件变为 true
并添加元素。代码应如下所示:
for(TestClass testClass: list){
if(!testClass.getAppId().equals("id") &&
!testClass.getStatus().equals("Status") &&
!testClass.getMessage().equals("Message")){
list.add(testClass);
}
}
dataProvider.refresh();
如果我有一个名为 'TestClass' 的 class,其中充满了 getter 和 setter,然后我在另一个 class 中的 class 对象上设置了一些属性,如下所示:
TestClass testClass = new TestClass();
testClass.setAppId("id");
testClass.setStatus("Status");
testClass.setMessage("Message");
List<TestClass> list = dataProvider.getList();
然后,在将此对象添加到我的 java 列表之前,我必须确保它不存在于列表中以避免重复。
为实现这一点,我执行以下检查以查看相应值的所有三个属性是否存在于列表中的 testClass 对象中。如果他们不这样做,那么它可能会被添加到列表中。
if(!list.contains(testClass.getAppId().equals("id")) &&
!list.contains(testClass.getStatus().equals("Status")) &&
!list.contains(testClass.getMessage().equals("Message"))) {
list.add(testClass);
}
dataProvider.refresh();
以上代码位于点击处理程序中,因此仅在点击按钮时执行。
那么,尽管我试图阻止重复项进入列表是徒劳的,但为什么我无法阻止重复记录被添加到我在 gwt 中的单元格 table?
我认为列表逻辑是问题所在吗?
感谢您的帮助,希望我已经足够全面了。
testClass.getAppId().equals("id")
returns true or false, weather your id equals to "id" or not.然后检查您的列表是否包含此调用的 return。这就是为什么您未能在列表中只维护唯一的项目。
您可以在 testClass class 中创建一个 equals/compare 方法,以便在此函数中定义要插入的项目是否已存在于您的结构中。
作为一般方法,最好使用散列来确保您的数据结构始终存储唯一项。
您的 testClass.getAppId().equals("id")
呼叫 returns true
或 false
。您的列表不 "contain" true
或 false
因此条件变为 true
并添加元素。代码应如下所示:
for(TestClass testClass: list){
if(!testClass.getAppId().equals("id") &&
!testClass.getStatus().equals("Status") &&
!testClass.getMessage().equals("Message")){
list.add(testClass);
}
}
dataProvider.refresh();