分享给需要的人,可以一起讨论更好的实现方法:
import java.util.Arrays;
import java.util.Comparator;
public class NoticeUtils {
public static void main(String[] args) {
String user_tag="12,1,3,5,8,3000,9,18,199,500,8000,6";
String select_tag="888,1,3,8,6,500";
long start=System.currentTimeMillis();
boolean a=isExist(user_tag, select_tag);
long end=System.currentTimeMillis();
System.out.println("执行时间:"+(end-start)+"ms,执行结果:"+a);
}
/**
* 判断问卷所选标签是否属于用户的标签
* @param user_tag 用户标签列表
* @param select_tag 客户选择的标签列表
* @return
*/
public static boolean isExist(String user_tag,String select_tag){
String[] userArray=user_tag.split(",");
String[] selectArray=select_tag.split(",");
//对标签进行排序
sort(selectArray);sort(userArray);
for(String select:selectArray){
boolean userExist=false;
for(String user:userArray){
if(select.equals(user)){
userExist=true;
}
}
if(!userExist){
return userExist;
}
}
return true;
}
/**
* 对标签数组进行排序
* @param tags
*/
private static void sort(String[] tags){
Arrays.sort(tags,new Comparator<String>(){
@Override
public int compare ( String o1,String o2){
if (Integer.parseInt(o1)>Integer.parseInt(o2)){
return 1;
}else if (Integer.parseInt(o1)<Integer.parseInt(o2)){
return -1;
}else{
return 0;
}
}
});
}
}