有点绕不过来了,替换相同的对象解决办法
有点绕不过来了,替换相同的对象
假如有一个ArrayList,或者Array
里边有几组数据,都是字符串形式存放的。
例如:11,22,“”,22,“”,33,“”,11,44
最后得到一个al或者array是:
11,22,33,44
具体的要求是:
获得第一个对象时,然后开始找,后边是否有相同的对象。如果后边存在相同的对象,那么后边相同的的对象,替换前边相同的对象,这样反复。如果对象是null或者“”,不要。
本来我想了几个方法,但是都有缺陷。
现在脑子绕不过来了,请大家也想想。
一句话就是,同样是相同的对象,最后一个会最终把前边一样的都替换掉,只留最后这一个对象。
------解决方案--------------------
假如有一个ArrayList,或者Array
里边有几组数据,都是字符串形式存放的。
例如:11,22,“”,22,“”,33,“”,11,44
最后得到一个al或者array是:
11,22,33,44
具体的要求是:
获得第一个对象时,然后开始找,后边是否有相同的对象。如果后边存在相同的对象,那么后边相同的的对象,替换前边相同的对象,这样反复。如果对象是null或者“”,不要。
本来我想了几个方法,但是都有缺陷。
现在脑子绕不过来了,请大家也想想。
一句话就是,同样是相同的对象,最后一个会最终把前边一样的都替换掉,只留最后这一个对象。
------解决方案--------------------
- Java code
List<String> list = new ArrayList<String>(); list.add("11"); list.add("22"); list.add(""); list.add("22"); list.add(""); list.add("33"); list.add(""); list.add("11"); list.add("44"); List<String> result = new ArrayList<String>(); while(list.size() > 0) { String s = list.remove(0); if(s != null && !"".equals(s) && !list.contains(s)) { result.add(s); } } System.err.println(java.util.Arrays.toString(result.toArray()));
------解决方案--------------------
List<String> list1 = new ArrayList<String>();
list1.add("11");
list1.add("22");
list1.add("33");
list1.add("55");
List<String> list2 = new ArrayList<String>();
list2.add("22");
list2.add("33");
list2.add("66");
for (String s : list2)
{
if (list1.contains(s))
list1.remove(s);
}
for (String s : list1)
{
System.out.println(s);
}
------解决方案--------------------
这个应该符合你的需求了。
List<String> list = new ArrayList<String>();
list.add("11");
list.add("22");
list.add("");
list.add("22");
list.add("");
list.add("33");
list.add("");
list.add("11");
list.add("44");
List<String> listRst = new ArrayList<String>();
for (String s : list) {
if (!listRst.contains(s) && !s.equals(""))
listRst.add(s);
}
for (String s : listRst) {
System.out.println(s);
}
------解决方案--------------------
------解决方案--------------------
看来我年纪大了,就是读不懂楼主意思
------解决方案--------------------
果断hashSet或者再数据库处理