两组字符串去重

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xinyuezitang/article/details/83856059

已知字符串A=“1,2,3,4,5,6,7,8”
已知字符串B=“1,3,4”
获取他们不相同的部分

(延伸:
需要返回给前端完整的任务列表, 任务列表一共有八个, 已知完成了三个任务(从数据库中获取), 如何取得未完成的任务列表)

方法一:

final String taskListString = "1,2,3,4,5,6,7,8";
String[] taskArray = taskListString1.split(",");
List<String> list = Arrays.asList(taskArray);

List<String> finishedStr = new ArrayList<String>();
finishedStr.add("1");
finishedStr.add("3");
finishedStr.add("4");
    
List<String> unfinishedStr = new ArrayList<String>();
for (int i = 0; i < list.size(); i++) {
    boolean flag =false;
    for (int j = 0; j < finishedStr.size(); j++) {
        if(list.get(i).equals(finishedStr.get(j))){
              flag = true;
              break;
          }
    }
    if(flag == false){
       unfinishedStr.add(list.get(i));
    }
}
System.out.println(unfinishedStr);
	
注意点:   在字符串\集合比较的时候, 只能equals 方法, 用==是无法判断的.

方法二:

final String taskListString1 = "1,2,3,4,5,6,7,8";
String[] taskArray = taskListString1.split(",");
List<String> ActionStr = Arrays.asList(taskArray);

final String taskListString1 = "1,3,4";
String[] taskArray = taskListString1.split(",");
List<String> ActionStr = Arrays.asList(taskArray);

List<String> unfinishedStr = new ArrayList<String>();
for (String taskStr : ActionStr) {
    if(!finishedStr.contains(taskStr)){
          unfinishedStr.add(taskStr);
     }
}
System.out.println(unfinishedStr);

注意: 使用contain方法时, 字符串B必须是字符串A的子集.
	如果字符串B不在A的范围内,也不会显示

猜你喜欢

转载自blog.csdn.net/xinyuezitang/article/details/83856059
今日推荐