list有python list uniquee方法吗

博客分类:
& 在本文中,介绍三种将list转换为map的方法:
1) 传统方法
假设有某个类如下
&&
class Movie {
public Movie(Integer rank, String description) {
this.rank =
this.description =
public Integer getRank() {
public String getDescription() {
public String toString() {
return Objects.toStringHelper(this)
.add("rank", rank)
.add("description", description)
.toString();
&&& 使用传统的方法:
&&&
public void convert_list_to_map_with_java () {
List&Movie& movies = new ArrayList&Movie&();
movies.add(new Movie(1, "The Shawshank Redemption"));
movies.add(new Movie(2, "The Godfather"));
Map&Integer, Movie& mappedMovies = new HashMap&Integer, Movie&();
for (Movie movie : movies) {
mappedMovies.put(movie.getRank(), movie);
(mappedMovies);
assertTrue(mappedMovies.size() == 2);
assertEquals("The Shawshank Redemption", mappedMovies.get(1).getDescription());
2) JAVA 8直接用流的方法:
&&&
public void convert_list_to_map_with_java8_lambda () {
List&Movie& movies = new ArrayList&Movie&();
movies.add(new Movie(1, "The Shawshank Redemption"));
movies.add(new Movie(2, "The Godfather"));
Map&Integer, Movie& mappedMovies = movies.stream().collect(
Collectors.toMap(Movie::getRank, (p) -& p));
(mappedMovies);
assertTrue(mappedMovies.size() == 2);
assertEquals("The Shawshank Redemption", mappedMovies.get(1).getDescription());
3) 使用guava 工具类库
&&&
public void convert_list_to_map_with_guava () {
List&Movie& movies = Lists.newArrayList();
movies.add(new Movie(1, "The Shawshank Redemption"));
movies.add(new Movie(2, "The Godfather"));
Map&Integer,Movie& mappedMovies = Maps.uniqueIndex(movies, new Function &Movie,Integer& () {
public Integer apply(Movie from) {
return from.getRank();
(mappedMovies);
assertTrue(mappedMovies.size() == 2);
assertEquals("The Shawshank Redemption", mappedMovies.get(1).getDescription());
浏览 94382
浏览: 5292819 次
来自: 广州
kris_zhang 写道如果有多个@Primary 会怎么样 ...
@PathVariable String department ...
1)Day.valueOf(&SUNDAY&quot ...
如果有多个@Primary 会怎么样?
今天也遇到这个问题了,果然好用,谢谢分享。
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'C++ STL算法系列4---unique , unique_copy函数
一.unique函数
类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素。
该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值范围得结束。
// sort words alphabetically so we can find the duplicates
sort(words.begin(), words.end());
/* eliminate duplicate words:
* unique reorders words so that each word appears once in the
front portion of words and returns an iterator one past the
* erase uses a vector operation to remove the nonunique elements
vector&string&::iterator end_unique =
unique(words.begin(), words.end());
words.erase(end_unique, words.end());
若调用sort后,vector的对象的元素按次序排列如下:
over quick
the turtle
则调用unique后,vector中存储的内容是:
注意,words的大小并没有改变,依然保存着10个元素;只是这些元素的顺序改变了。调用unique“删除”了相邻的重复值。给“删除”加上引号是因为unique实际上并没有删除任何元素,而是将无重复的元素复制到序列的前段,从而覆盖相邻的重复元素。unique返回的迭代器指向超出无重复的元素范围末端的下一个位置。
注意:算法不直接修改容器的大小。如果需要添加或删除元素,则必须使用容器操作。
#include &iostream&
#include &cassert&
#include &algorithm&
#include &vector&
#include &string&
#include &iterator&
int main()
//cout&&&Illustrating the generic unique algorithm.&&&
const int N=11;
int array1[N]={1,2,0,3,3,0,7,7,7,0,8};
vector&int& vector1;
for (int i=0;i&N;++i)
vector1.push_back(array1[i]);
vector&int&::iterator new_
new_end=unique(vector1.begin(),vector1.end());
//&删除&相邻的重复元素
assert(vector1.size()==N);
vector1.erase(new_end,vector1.end());
//删除(真正的删除)重复的元素
copy(vector1.begin(),vector1.end(),ostream_iterator&int&(cout,& &));
运行结果为:
二、unique_copy函数
算法标准库定义了一个名为unique_copy的函数,其操作类似于unique。
唯一的区别在于:前者接受第三个迭代器实参,用于指定复制不重复元素的目标序列。
unique_copy根据字面意思就是去除重复元素再执行copy运算。
编写程序使用unique_copy将一个list对象中不重复的元素赋值到一个空的vector对象中。
//使用unique_copy算法
//将一个list对象中不重复的元素赋值到一个空的vector对象中
#include&iostream&
#include&list&
#include&vector&
#include&algorithm&
int main()
int ia[7] = {5 , 2 , 2 , 2 , 100 , 5 , 2};
list&int& ilst(ia , ia + 7);
vector&int&
//将list对象ilst中不重复的元素复制到空的vector对象ivec中
//sort(ilst.begin() , ilst.end());
//不能用此种排序,会报错
ilst.sort();
//在进行复制之前要先排序,切记
unique_copy(ilst.begin() , ilst.end() , back_inserter(ivec));
//输出vector容器
cout&&&vector: &&&
for(vector&int&::iterator iter = ivec.begin() ; iter != ivec.end() ; ++iter)
cout&&*iter&&& &;
list&int& ilst(ia , ia &#43; <span style="color:#);
改为:vector&int& ilst(ia , ia &#43; <span style="color:#);
则排序时可用:
sort(ilst.begin() , ilst.end());
&这里要注意list和vector的排序用什么方法。
《Effective STL》里这些话可能有用处:
  “我们总结一下你的排序选择:
   ● 如果你需要在vector、string、deque或数组上进行完全排序,你可以使用sort或stable_sort。
   ● 如果你有一个vector、string、deque或数组,你只需要排序前n个元素,应该用partial_sort。
   ● 如果你有一个vector、string、deque或数组,你需要鉴别出第n个元素或你需要鉴别出最前的n个元素,而不用知道它们的顺序,nth_element是你应该注意和调用的。
   ● 如果你需要把标准序列容器的元素或数组分隔为满足和不满足某个标准,你大概就要找partition或stable_partition。
   ● 如果你的数据是在list中,你可以直接使用partition和stable_partition,你可以使用list的sort来代替sort和stable_sort。如果你需要partial_sort或nth_element提供的效果,你就必须间接完成这个任务,但正如我在上面勾画的,会有很多选择。
  另外,你可以通过把数据放在标准关联容器中的方法以保持在任何时候东西都有序。你也可能会考虑标准非STL容器priority_queue,它也可以总是保持它的元素有序。
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?1. 循环list中的所有元素然后删除重复 public
removeDuplicate(List list)
list.size()
1 ; i ++ )
list.size()
(list.get(j).equals(list.get(i)))
list.remove(j);
2. 通过HashSet踢除重复元素
removeDuplicate(List list)
HashSet(list);
list.clear();
list.addAll(h);
在groovy中当然也可以使用上面的两种方法, 但groovy自己提供了unique方法来去除重复数据 def list = [1, 2, 3, 2, 4, 1, 5]
list.unique()
// [1, 2, 3, 4, 5]
本文已收录于以下专栏:
相关文章推荐
最近做Web开发时碰到一个问题,要求向一些用户发送通知邮件,为了避免重复发送,需要构建一个不包含重复用户的列表。以下是实现方法:
----------------------------------...
一、去除List中重复的Stringpublic List removeStringListDupli(List stringList) {
Set set = new LinkedHashS...
package com.qiyadeng.
import java.util.ArrayL
import java.util.C
import ja...
1. 循环list中的所有元素然后删除重复
removeDuplicate(List list)
SetUniqueList 是 Commons-Collections 项目中的一个类,用来构造不重复的元素列表
package com.ysstech.test.list.
问题描述:
引入新版身份证OCR aar包后,老版银行卡OCR崩溃,报找不到armv8下的so文件
原因分析:
新版身份证OCR有了对新CPU的版本支持,因此编译时会生成arm64-...
处在多媒体时代,没有图片显示怎么可以?幸好android为我们提供了图片显示的控件imageVIew,下面的程序将通过这个控件实现触摸屏幕更换显示的图片。
程序开始运行
单击屏幕之后,更换图片...
贴上原代码List data = new ArrayList();
ReportDataModel.Data reportData = = new ReportDataModel().new Data...
List排序并删除重复值
a=[‘b’,’c’, ‘d’,’b’,’c’,’a’,’a’]
方法:使用set()
b=sorted(set(a))
List排序不删除重复...
【082-Remove Duplicates from Sorted List II(排序链表中删除重复元素II)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Give...
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)求助:STL中的unique()函数怎么用?【c++吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:295,519贴子:
求助:STL中的unique()函数怎么用?收藏
c++培训课程,美国上市公司&达内&出品c++课程,15年教学经验,总监级c++讲师亲授!!达内首创&先就业后付款&模式.名企项目总监授课,成就&稀缺级&c/c++软件工程师
我是做了一个list,list中放的事类对象
unique()函数专门用来消除列表中的重复元素int _data[]={10,22,4,10,89,22,89,10};list&int&_Numbers(_data,_data+8);
//10 22 4 10 89 22 89 10_Numbers.sort();
//4 10 10 10 22 22 89 89_Numbers.unique();
//4 10 22 89
#include &iostream&#include &algorithm&#include &list&#include &string& class student{public: char name[20];
student(int a,int b,char c[20]) {
strcpy(name,c); }
void print() {
cout&&"姓名"&&name&&"
学号"&&num&&"
成绩"&&result&& }}; int main(){ student st1(123,100,"jia"),st2(23,89,"hui"),st3(123,345,"hus"); list&student& list&student&::iterator itr1,itr2; cout&&"st.empty():"&&st.empty()&& cout&&"st.max_size():"&&st.max_size()&& st.push_back(st1); st.push_back(st2); st.push_back(st3); st.push_front(st1); st.insert(++st.begin(),st3); st.erase(++st.begin()); cout&&"st.size():"&&st.size()&& itr1=st.begin(); while(itr1!=st.end()) {
itr1-&print();
itr1++; } list&student& pst= pst.unique();
while(itr2!=pst.end()) {
itr2-&print();
itr2++; } return 0;}
bool operator==(const student& std){
return this-&num==std.}
额。。图太小,好像看不到。。。反正就是结果里面有重复的
没有人吗?
通用算法并不会修改容器, 而是把移除的元素移到后面, 返回指向首个被移除的元素的迭代器.
void unique();
template&typename Pred2&
void unique(Pred2 pred);
// pred是比较器
真实商业项目实战,实战操作贯穿整个学习过程,编程c++课程老师工作和教学经验丰富.动力IT教育编程c++培训,汇集行业内编程c++专家进行教学,实现入门到精通的快速转身.
高手呢,求高手啊!!!
登录百度帐号推荐应用博客分类:
转载地址:http://www.blogjava.net/rain1102/archive//219567.html
groovy中list去除重复数据
以前在java里面要想去除list中的重复数据可以使用两种方式实现:
1. 循环list中的所有元素然后删除重复
removeDuplicate(List list)
list.size()
1 ; i ++ )
list.size()
(list.get(j).equals(list.get(i)))
list.remove(j);
2. 通过HashSet踢除重复元素
removeDuplicate(List list)
HashSet(list);
list.clear();
list.addAll(h);
在groovy中当然也可以使用上面的两种方法, 但groovy自己提供了unique方法来去除重复数据
def list = [1, 2, 3, 2, 4, 1, 5]
list.unique()
// [1, 2, 3, 4, 5]
浏览: 343278 次
来自: 北京
groovy用的多吗?我还没发现有哪个java项目在用这个?
在网上搜到的几乎全是说满了就扩充。但是我有个疑问,满了就扩充, ...
好东西啊,就用这个包。
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 feelunique是正品吗 的文章

 

随机推荐