导航:首页 > 编程语言 > vector去重java

vector去重java

发布时间:2025-01-11 03:00:38

⑴ Linux下C++读取文件去重的问题

#include<fstream>
#include<vector>
#include<string>
#include<algorithm>
#include<iostream>
#include<sstream>

classdata_t{
public:
data_t():val(5){}

std::string&operator[](intconsti){
returnval[i];
}
std::stringconst&operator[](intconsti)const{
returnval[i];
}

private:
std::vector<std::string>val;
};

template<inti>
structcmp1{//用于sort函数
booloperator()(data_tconst&a,data_tconst&b)const{
returna[i]<b[i];
}
};

template<inti>
structcmp2{//用于unique函数
booloperator()(data_tconst&a,data_tconst&b)const{
returna[i]==b[i];
}
};

intmain(){
std::ifstreamistr("input.txt");
if(!istr){
std::cerr<<"文件打开失败 ";
return__LINE__;
}

typedefstd::vector<data_t>vector_t;
vector_tdata;
//读取文件
std::stringline;
intline_num=0;
while(getline(istr,line)){
++line_num;
data_ttmp_data;
std::istringstreamtmp_str(line);
inti=0;
for(;i!=5;++i){
if(!getline(tmp_str,tmp_data[i],' ')){
std::cerr<<"在第"<<line_num<<"行发生错误 ";
}
}
if(i==5){//该行读取成功
data.push_back(tmp_data);
}
}

//按关键字1去重
std::sort(data.begin(),data.end(),cmp1<0>());
vector_t::iteratorlast=std::unique(data.begin(),data.end(),cmp2<0>());
//按关键字2去重
std::sort(data.begin(),last,cmp1<1>());
last=std::unique(data.begin(),last,cmp2<1>());

data.erase(last,data.end());

//输出到另一个文件
std::ofstreamostr("output.txt");
if(!ostr){
std::cerr<<"文件打开失败 ";
return__LINE__;
}

for(inti=0;i!=data.size();++i){
for(intj=0;j!=5;++j){
ostr<<data[i][j]<<" ";
}
ostr<<" ";
}

return0;
}

输入文件为input.txt,样例:

111222333444555
111222333444555
1111222333444555
1111222333444555
11111222333444555
11111222333444555
输出到output.txt,样例:
111222333444555

⑵ 一个arraylist,往里面add值的时候,遇到重复就不要添加,怎么做

可以使用set做媒介,先将需要加入的数据存入set后再从set存入list。

如图所示

Set和List的区别

⑶ list和set的区别

在Java编程中,List和Set是两种常见的集合类型,它们各有特色。首先,List是可重复的,允许存储元素出现多次,例如ArrayList、Vector和LinkedList都实现了List接口,它们的特点是元素有序,适合存储单列数据,允许数据重复。相反,Set是不可重复的集合,主要由HashSet和TreeSet实现,这意味着其中的元素是唯一的,这使得Set在查找和去重操作上更为高效。


其次,List和Set在数据结构上有所区别。List更像是有序的数据序列,元素的插入和删除会影响其顺序,而Set则更像是键值对的存储,以键(key)为唯一标识,值(value)可以有重复,但键是不允许重复的。因此,如果你需要保持元素的唯一性和顺序,可以选择List;如果关注的是去重和快速查找,Set则更为合适。


总的来说,List和Set的选择取决于你的具体需求,是追求有序性和重复性,还是追求去重和高效查找,这决定了你应选择哪种集合类型。
阅读全文

与vector去重java相关的资料

热点内容
db2查看数据库字符集 浏览:449
小米私密文件移出后找不到 浏览:775
红底白色的心是什么app的标志 浏览:163
小冤家APP角色怎么变回家长 浏览:822
梦幻西游合宠模拟器网站是什么 浏览:420
诺基亚930最新版本 浏览:201
ps制作主kv文件过大 浏览:884
车端面如何编程 浏览:279
win10u盘备份时间长 浏览:617
文件夹怎么转换为pdf 浏览:502
2008打开登录密码忘记了 浏览:771
苹果7如何授权应用程序 浏览:899
怎样把旧的文档保存到桌面文件夹 浏览:827
wps云数据如何恢复 浏览:496
微信发送过来文件 浏览:300
怎么改合同网站 浏览:73
网络斗地主记牌器怎么实现的 浏览:377
ps镜像文件制作教程 浏览:45
系统分页文件大小设置多少 浏览:447
win10有线无法上网 浏览:339

友情链接