有关List查找的问题

来源:互联网 发布:淘宝怎么合并订单 编辑:程序博客网 时间:2024/05/22 10:40
/**
* 高效率查找相同的元素或者不同的元 效率相对于最高的
* @param list1
* @param list2
* @return
*/
public static List<String> getDiffrent(List<String> list1,List<String> list2){
Map<String,Integer> map = new HashMap<String,Integer>(list1.size()+list2.size());
List<String> diff = new ArrayList<String>();//存放不同的元素
List<String> diffs = new ArrayList<String>();//存放相同的元素
List<String> maxList = list1;
List<String> minList = list2;
if(list2.size()>list1.size()){
maxList = list2;
minList = list1;
}
for(String string : maxList){
map.put(string, 1);
}
for(String string : minList){
Integer cc = map.get(string);
if(cc!= null){
map.put(string, ++cc);
continue;
}
map.put(string, 1);
}
//取出不同的元素
for(Map.Entry<String, Integer> entry :map.entrySet()){
if(entry.getValue() == 1){
diff.add(entry.getKey());////取出不同的元素
}
if(entry.getValue() >=2){
diffs.add(entry.getKey());//取出相同的元素;存放相同的元素
}
}

return diff;
}

/**
* zhaohe
* 查找出两个List当中相同的元素
* @param x
* @param y
* @return
*/
public static List<String> listEqual(List<String> x,List<String> y){
List<String> listString = null;
try {
listString = new ArrayList<String>();
for(String x1 : x){
for(String y1 : y){
if(x1.equals(y1) || x1 == y1){
listString.add(y1);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return listString;
}

/**
* zhaohe
* 比较两个List<String>当中是否存在相同的数据 效率比较低
* @param x
* @param y
* @return
*/
public static boolean compareToList(List<String> x,List<String> y){
boolean flag = false;
for(String x1 : x){
for(String y1 : y){
if( x1.equals(y1) || x1 == y1 ){
flag = true;
break;
}
}
}
return flag ;
}




/**
* 查找一个List<String> 相同的元素
* @return
*/
public static List<String> findSameListString(List<String> list){
List<String> diffList = new ArrayList<String>();
Map<String,Integer> map = new HashMap<String,Integer>();
for(String string : list){
Integer cc = map.get(string);
if(cc!= null){
map.put(string, ++cc);
continue;
}
map.put(string, 1);
}
for(Map.Entry<String, Integer> entry :map.entrySet()){
if(entry.getValue() >=2){
diffList.add(entry.getKey());//取出相同的元素;存放相同的元素
}
}
return diffList;

}
1 0
原创粉丝点击