list对象去重

转载请标明出处,维权必究:http://77blogs.com/?p=471

咋们来看看。首先定义一个对象,随便吧


 

然后有好多的Data对象放在list数组中,而我们要根据Data对象里面的s来判断list中是否有相同的对象,如果用for循环一个个来比较,那么当里边的对象越多,那么比较的次数也会越来越多,这不是好做法,那应该怎么比较呢?

这就要利用HashSet的性质,不可重复。

 

HashSet如何实现去重:

是通过调用元素内部的hashCode和equals方法实现去重,首先调用hashCode方法,比较两个元素的哈希值,如果哈希值不同,直接
认为是两个对象,停止比较。如果哈希值相同,再去调用equals方法,返回true,认为是一个对象。返回false,认为是两个对象。

HashSet查找的高效性:

Hash算法对每一个对象都计算出一个Hash码,根据Hash码把对象分配到某个存储区域中,比如一个集合包含了很多人,根据国籍,中国人是一个存储区域,美国人是一个存储区域,英国人是一个存储区域,……。这样如果要查找该集合是否包含了某个中国人,就到中国人的存储区域去比较就行了,这样大大提高了效率。

Java中实现了Hash的集合是HashSet。HashSet查找某个对象时,首先用hashCode()方法计算出这个对象的Hash码,然后再根据Hash码到相应的存储区域用equals()方法查找。

 

由此可见利用HashSet去重是可行的。

1、重写比较对象Data的的HashCode与equal方法。


 

2、比较:

 

HashSet h = new HashSet(list); 这一步会将重复的元素去掉,当然,不是随机去掉,而是list中排在后面的与前面相同的去掉。因为是一个个加入HashSet里面的,当然最终得到的结果是无序的,如果需要按照原来的顺序还需要进行排序处理

从一个git仓库拷贝到另一个git仓库

转载请标明:http://77blogs.com/?p=473

利用git从一个仓库拷贝一个项目到另一个仓库,并且log也能够一起过去。

 

1、从原地址克隆一份裸版本库,比如原本托管于 GitHub。

git clone --bare http://github....(原始仓库地址)

 

2、进入克隆下来的目录

cd project.git(project即为你的项目名称)

 

3、以镜像推送的方式上传代码到新的仓库地址。

git push –mirror http://…(目标仓库地址)

 

参考自:https://www.jianshu.com/p/3ac62052ebec

git第一次提交代码到码云

转载请标明出处:http://77blogs.com/?p=474

不说废话,来看重点。

1、首先注册码云账号,然后建立仓库,这些就直接跳过,很简单。

 

2、下载git,安装。这一步也跳过。

 

3、本地生成SHH公钥:

打开git-bash(必须在下载的git文件夹里面,直接打开该文件),然后输入:ssh-keygen -t rsa -C “自己的邮箱地址”

不断回车。

一般在用户目录下可以找到.ssh文件夹,C:\Users\Administrator\.ssh

用文本编辑器打开id_rsa.pub文件,并复制里面的内容。

 

4、打开码云账号上的设置:

进去便可看到SSH公钥的设置,在公钥里面填上复制的内容,命名自己名一个就可以了。

 

5、进入需要上传的项目文件夹,右键打开git.bash。

(1)、使用 git init 命令 ,初始化一个git 本地仓库此时会在本地创建一个 .git 的文件夹,一般这个文件夹是隐藏的

(2)、将刚刚建立的仓库的路径复制

 

(3)、使用git remote add origin https……(刚刚复制的路径名称) ,添加远程仓库到本地

(4)、使用 git pull origin master 命令,将码云上的仓库pull到本地文件夹

(5)、使用git add .  (. 表示所有的)或者 git add + 文件名 ,将文件保存到缓存区

(6)、使用git commit -m “新添加的文件内容描述” ,添加文件描述

 

这时候我发现提交失败,根据提醒,我们需要告知git我们的邮箱以及密码,自己在提示上可以看到,那么我们可以输入命令:

git config –global user.email “you@example.com

git config –global user.name “Your Name”

然后再执形刚刚的提交操作

(7) 执形 git push origin master