Set形式的数组,数组内容重复

package com.sicdt.library.core.utils;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
*
* <br>类 名: ArraySet
* <br>描 述: 自定义Set
* <br>作 者: shizhenwei
* <br>创 建: 2017年5月15日
* <br>版 本: v0.0.2
* <br>
* <br>历 史: (版本) 作者 时间 注释
*/
public class ArraySet<E> implements Set<E> { private ArrayList<E> list; public ArraySet() {
list = new ArrayList<>();
} public ArraySet(int initialCapacity){
list = new ArrayList<>(initialCapacity);
} public ArraySet(Collection<? extends E> c) {
list = new ArrayList<>(c);
} @Override
public int size() {
return list.size();
} @Override
public boolean isEmpty() {
return list.isEmpty();
} @Override
public boolean contains(Object o) {
return list.contains(o);
} @Override
public Iterator<E> iterator() {
return list.iterator();
} @Override
public Object[] toArray() {
return list.toArray();
} @Override
public <T> T[] toArray(T[] a) {
return list.toArray(a);
} @Override
public boolean add(E e) {
if(list.contains(e)){
return false;
}
return list.add(e);
} @Override
public boolean remove(Object o) {
return list.remove(o);
} @Override
public boolean containsAll(Collection<?> c) {
return list.containsAll(c);
} @Override
public boolean addAll(Collection<? extends E> c) {
if(c == null || c.isEmpty()) return false;
for(E e: c){
add(e);
}
return true;
} @Override
public boolean retainAll(Collection<?> c) {
return list.retainAll(c);
} @Override
public boolean removeAll(Collection<?> c) {
return list.removeAll(c);
} @Override
public void clear() {
list.clear();
} @Override
public String toString() {
return list == null ? "[]" : list.toString();
} public static void main(String[] args) {
Set<String> set = new ArraySet<>();
set.add("aa");
set.add("cc");
set.add("bb");
set.add("cc");
System.out.println(set); Map<String, String> map = new ArrayMap<>();
map.put("a", "aa");
map.put("b", "bb");
map.put("c", "cc");
map.put("a", "dd");
System.out.println(map); System.out.println(map.keySet()); Iterator<String> it = map.keySet().iterator();
while(it.hasNext()){
String key = it.next();
String value = map.get(key);
System.out.println(key + "," + value);
}
}
}

最新文章

  1. Javascript实践技巧
  2. PHP环境配置
  3. ELK日志系统:Filebeat使用及Kibana如何设置登录认证
  4. 使用 python 实现 memcached 的启动服务脚本 rc
  5. java 内存模型
  6. HTML5的学习--performance获取加载时间的工具
  7. 在 SQL Server 数据库的 WHERE 语句中使用子查询
  8. iconv命令 gbk 转 UTF-8
  9. linux-4 虚拟机安装VMwareTOOls工具包
  10. 保存恢复临时信-Android 中使用onSaveInstanceState和onRestoreInstanceState
  11. Recovery启动流程(3)--recovery.cpp分析
  12. NodeJs获取函数名称和函数操作整理
  13. Ubuntu apt-get 错误 -11 -system error
  14. cygwin安装与使用
  15. unity3d在菜单栏,一键设置Player setting及自动打包并设置apk的存储位置
  16. rsyslog 移植与配置方案介绍
  17. List双向链表容器
  18. day08 python之函数初识
  19. (3)The critical role librarians play in the opioid crisis
  20. Hadoop系列之(三):使用Cloudera部署,管理Hadoop集群

热门文章

  1. java 中的valueOf方法和强转
  2. TP5 Session Db驱动
  3. android:clearTaskOnLaunch的用法
  4. 我的第五个程序 java的JDBC连接mysql数据库 实现输入查询
  5. 探讨把一个元素从它所在的div 拖动到另一个div内的实现方法
  6. 字符设备驱动程序--LED驱动
  7. Mac下通过shell脚本修改properties文件
  8. Splay_Tree 模板(区间修改,旋转操作)
  9. 常见的.NET面试题(130)
  10. JS将秒转换为 天