如何删除list里面的重复字段
ArrayListrepList=newArrayList();StringtempRepPart=prpLrepairFeeDto.getPartName();if(!...
ArrayList repList = new ArrayList();
String tempRepPart = prpLrepairFeeDto.getPartName();
if (!repList.contains( tempRepPart)) {
repList.add(tempRepPart);
}
System.out.println(repList);
输出结果是:
[电工项目]
[电工项目]
[电工项目]
[电工项目]
[拆装项目]
我想实现的是,如果删除list里面的重复项,最后想要的输出结果是:
[电工项目]
[拆装项目] 展开
String tempRepPart = prpLrepairFeeDto.getPartName();
if (!repList.contains( tempRepPart)) {
repList.add(tempRepPart);
}
System.out.println(repList);
输出结果是:
[电工项目]
[电工项目]
[电工项目]
[电工项目]
[拆装项目]
我想实现的是,如果删除list里面的重复项,最后想要的输出结果是:
[电工项目]
[拆装项目] 展开
3个回答
展开全部
使用hashmap吧
HashMap<String, Integer> hs = new HashMap<String, Integer>();
String strs = "";
for (String string : repList) {
if(hs.get(string) == null) {
strs += ","+string;
}
}
System.out.println(strs);
如果要取一个一个值的话就split(",")获得数组就行了
HashMap<String, Integer> hs = new HashMap<String, Integer>();
String strs = "";
for (String string : repList) {
if(hs.get(string) == null) {
strs += ","+string;
}
}
System.out.println(strs);
如果要取一个一个值的话就split(",")获得数组就行了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
测试数据:
List<string> li1 = new List<string> { "8", "8", "9", "9" ,"0","9"};
List<string> li2 = new List<string> { "张三", "张三", "李四", "张三", "王五", "李四" };
List<string> li3 = new List<string> { "A", "A", "C", "A", "C", "D" };
List<string> li4 = new List<string> { "12", "18", "19", "19", "10", "19" };
方法一:
HashSet<string> hs = new HashSet<string>(li1); //此时已经去掉重复的数据保存在hashset中
方法二:
for (int i = 0; i < li2.Count; i++) //外循环是循环的次数
{
for (int j = li2.Count - 1 ; j > i; j--) //内循环是 外循环一次比较的次数
{
if (li2[i] == li2[j])
{
li2.RemoveAt(j);
}
}
}
方法三:
//把相同的用null代替。
for (int i = 0; i < li3.Count; i++)
{
for (int j = 0; j < li3.Count; j++)
{
if (i == j) continue;
if (li3[i] == li3[j])
{
li3[j] = "null";
}
}
}
方法四:
//这方法跟上面的一样,只是变了逻辑
for (int i = 0; i < li4.Count - 1; i++)
{
for (int j = 0; j < li4.Count ; j++)
{
if (i != j)
{
if (li4[i] == li4[j])
{
li4[j] = "null";
}
}
}
}
List<string> li1 = new List<string> { "8", "8", "9", "9" ,"0","9"};
List<string> li2 = new List<string> { "张三", "张三", "李四", "张三", "王五", "李四" };
List<string> li3 = new List<string> { "A", "A", "C", "A", "C", "D" };
List<string> li4 = new List<string> { "12", "18", "19", "19", "10", "19" };
方法一:
HashSet<string> hs = new HashSet<string>(li1); //此时已经去掉重复的数据保存在hashset中
方法二:
for (int i = 0; i < li2.Count; i++) //外循环是循环的次数
{
for (int j = li2.Count - 1 ; j > i; j--) //内循环是 外循环一次比较的次数
{
if (li2[i] == li2[j])
{
li2.RemoveAt(j);
}
}
}
方法三:
//把相同的用null代替。
for (int i = 0; i < li3.Count; i++)
{
for (int j = 0; j < li3.Count; j++)
{
if (i == j) continue;
if (li3[i] == li3[j])
{
li3[j] = "null";
}
}
}
方法四:
//这方法跟上面的一样,只是变了逻辑
for (int i = 0; i < li4.Count - 1; i++)
{
for (int j = 0; j < li4.Count ; j++)
{
if (i != j)
{
if (li4[i] == li4[j])
{
li4[j] = "null";
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用HashSet吧
HashSet<String> set = new HashSet<repList>;
repList.clear();
repList.addAll(set);
HashSet<String> set = new HashSet<repList>;
repList.clear();
repList.addAll(set);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询