java代码怎么将取到的值去重后合并显示,中间用分号隔开

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java代码怎么将取到的值去重后合并显示,中间用分号隔开相关的知识,希望对你有一定的参考价值。

public static String getLabel_name(String party_id,String party_type,String source) throws Exception
String label_value = "";
String label_name = "";
BLCc_tb_labelFacade facade = new BLCc_tb_labelFacade();
Collection coll = null;
String conditions = " 1=2 ";
if(party_id != null && party_type != null && source != null)
conditions = "party_id = '"+party_id+"' and party_type = '"+party_type+"' and source = '"+source+"'";

coll = facade.findByConditions(conditions);
if(coll != null && !coll.isEmpty())
Iterator it = coll.iterator();
if(it.hasNext())
Cc_tb_labelDto dto = (Cc_tb_labelDto) it.next();
label_value = dto.getLabel_value();


label_name = getLabel_name(label_value);
return label_name;

小弟木有分了,求大神啊
求救命啊

参考技术A import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.apache.commons.lang3.StringUtils;

public class Test
public static void main(String[] args)
List<String> list1 = new ArrayList<String>(Arrays.asList("1", "2", "3"));
List<String> list2 = new ArrayList<String>(Arrays.asList("2", "3", "4"));
Set<String> set = new HashSet<String>();
set.addAll(list1);
set.addAll(list2);
String str = StringUtils.join(set, ";");
System.out.println(str);

追问

大师 ,根据我这个实例怎么写啊 我刚入门的

追答

代码里面的哪个值有重复?

追问

if(it.hasNext())
Cc_tb_labelDto dto = (Cc_tb_labelDto) it.next();
label_value = dto.getLabel_value();
里面的abel_value 是我要的值 估计要在里面套一个for循环 加上去重 合并 和分割 关于重复 也是指的 label_value 字段在数据库里面的数据 怕有重复
我只知道大概不会写求帮忙

追答

if(it.hasNext())

应该改成while
然后声明一个Set set = new HashSet();

set.add(dto.getLabel_value());

最后返回StringUtils.join(set, ";");应该就可以了

追问

大神 不全吧?帮我写完整好嘛 帮帮忙啊

追答

写不全啊,你的类这边都没有,下面的代码没调试过,你看看对不对
public static String getLabel_name(String party_id, String party_type,
String source) throws Exception
String label_value = "";
String label_name = "";
BLCc_tb_labelFacade facade = new BLCc_tb_labelFacade();
Collection coll = null;
String conditions = " 1=2 ";
if (party_id != null && party_type != null && source != null)
conditions = "party_id = '" + party_id + "' and party_type = '"
+ party_type + "' and source = '" + source + "'";

coll = facade.findByConditions(conditions);
Set set = new HashSet();
if (coll != null && !coll.isEmpty())
Iterator it = coll.iterator();
while (it.hasNext())
Cc_tb_labelDto dto = (Cc_tb_labelDto) it.next();
set.add(dto.getLabel_value());


return StringUtils.join(set,";");

追问

兄弟 为什么没有用到for循环啊 这样可以实现去重合并和分号分隔麽
兄弟 能不能只在这里

if(it.hasNext())
Cc_tb_labelDto dto = (Cc_tb_labelDto) it.next();
label_value = dto.getLabel_value();

用for循环方式做?
您在忙么

追答

你运行过我给你的代码吗?
set里面是不能重复值的,这样就实现了去重合并
分号分隔是下面的语句
return StringUtils.join(set,";");

用分号把这个set集合串起来

追问

嗯嗯 我明白 谢谢你 我想说的是 代码最下面的label_name = getLabel_name(label_value);
return label_name;
是调下面一个方法的 我换成你给的return 就报错 弄不好 麻烦你啦

本回答被提问者采纳
参考技术B 把值放到map里,然后再取出
map的值是没有重复值得,你就可以
Map map=new HashMap();
map.put(key,value);
for (Map.Entry entry : map.entrySet())
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
追问

大神 这样就可以了?合并 和分隔都好么嘛 能帮忙写全嘛

java 怎么把多个list 合并成一个去掉重复的

List接口中,有一个方法addAll,可以实现合并list。 List a=new ArrayList(); List b=new ArrayList(); b.addAll(a); 合并出来的List就是b,而不是一个新的List . 如果创建新的可以: ArrayList c=(ArrayList )a.clone; c.addAll(b); 参考技术A 利用set集合的排重特性 参考技术B 用set吧,set可以去掉重复的,和list的存取是一样的。 参考技术C List<Integer> list1 = new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<Integer>();
list2.add(2);
list2.add(3);
list2.add(4);
list2.removeAll(list1);
list2.addAll(list1);
System.out.println(list2);

以上是关于java代码怎么将取到的值去重后合并显示,中间用分号隔开的主要内容,如果未能解决你的问题,请参考以下文章

XOR( 异或空间

请教thinkphp 二维数组值去重怎么去的哦

markdown 多个文件取第一个单词去重后合并

爬虫最后一天,爬取到的数据存到mysql中,爬虫和下载中间件加代理cookieheaderselenium随机生成uersagent去重规则源码分析(布隆过滤器)scrapy-redis实现分布式爬虫

WPF{ComboBox绑定类对象, 下拉列显示的值,与取到的值}

PHP使用POST传递json数据的接收与处理问题