JAVA ArraySet<E> SET形式的有序LIST
- 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);
- }
- }
- }
JAVA ArraySet<E> SET形式的有序LIST的更多相关文章
- Java方法之定义形式及可变参数
目录 Java方法之定义形式及可变参数 方法调用 使用static修饰的方法 没有static修饰的方法 方法的定义格式 无参无返 无参有返 有参无返 有参有返 形参个数可变的方法 采用数组形参来定义 ...
- Java中List Set Map 是否有序等总结
1.Collection List Set Map 区别记忆 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文 ...
- Java数据结构与算法(1) - ch02有序表(OrderedArray)
有序表需要掌握的插入方法,删除方法和二分法查找方法. 插入方法: 从前往后找到比要插入的值大的数组项,将该数组项及之后的项均后移一位(从最后一项起依次后移),最后将要插入的值插入当前数组项. 删除方法 ...
- java中把指数形式的数字转为正常形式显示
/** * 当浮点型数据位数超过10位之后,数据变成科学计数法显示.用此方法可以使其正常显示. * @param value * @return Sting */ public static Stri ...
- java函数式编程的形式
java中没有真正的函数变量: 一.所有的函数(拉姆达)表达式,都被解释为functional interface @FunctionalInterface interface GreetingSer ...
- Java算法练习——寻找两个有序数组的中位数
题目链接 题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 $O(log(m + n))$. 你可以假设 nu ...
- 【日常笔记】java文件下载返回数据流形式
@RequestMapping("/downloadFile") @ResponseBody public void download(String uploadPathUrl, ...
- java以流的形式输出文件
原文:http://blog.csdn.net/liutt55/article/details/78126614 public void downProcessFile(HttpServletRequ ...
- Java中注释的形式
单行注释 单行注释 // #双斜杠 快捷键:Ctrl + / 多行注释 多行注释 /* */ #单斜杠星号 星号单斜杠 快捷键:Ctrl + shift + / 文档注释 多行注释 /** */ #单 ...
随机推荐
- SpringMVC学习(一)小demo
首先看一下整个demo的项目结构: 第一步是导入Spring MVC单独使用时的最少jar包: 第二步在项目的web.xml中配置Spring MVC提供的拦截请求的Servlet: 全类名是:org ...
- PhpMyAdmin 配置文件现在需要一个短语密码的解决方法
新版本的PhpMyAdmin 增强了安全性,需要在配置文件设置一个短语密码.否则进入之后会有“配置文件现在需要一个短语密码.”的红色警叹提示. 解决方法: 1.将 phpMyAdmin/librari ...
- C#网络编程系列文章(五)之Socket实现异步UDPserver
原创性声明 本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处 文章系列文件夹 C#网络编程 ...
- Redis遍历所有key的两个命令 -- KEYS 和 SCAN
当我们需要遍历Redis所有key或者指定模式的key时,首先想到的是KEYS命令: KEYS pattern 官网对于KEYS命令有一个提示: KEYS 的速度非常快,例如,Redis在一个有1 ...
- EasyUI DataGrid 相同连续列合并
扩展方法:$.extend($.fn.datagrid.methods, { autoMergeCells: function(jq, fields) { return jq.each(functio ...
- HTML5学习笔记简明版(10):废弃的元素和属性
废弃的元素(Element) 这个小节里列出的元素在HTML5里将不再使用.现有文档升级到 HTML5的话能够使用一些替代方案. 比如parser section 能够处理isindex 元素的功能. ...
- ng-model ng-show
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- poj1840
Eqs Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 15133 Accepted: 7426 Description ...
- 【BZOJ2226】[Spoj 5971] LCMSum 莫比乌斯反演(欧拉函数?)
[BZOJ2226][Spoj 5971] LCMSum Description Given n, calculate the sum LCM(1,n) + LCM(2,n) + .. + LCM(n ...
- 《从零开始学Swift》学习笔记(Day 20)——函数中参数的传递引用
原创文章,欢迎转载.转载请注明:关东升的博客 参数的传递引用 类是引用类型,其他的数据类型如整型.浮点型.布尔型.字符.字符串.元组.集合.枚举和结构体全部是值类型. 有的时候就是要将一个值类型参数以 ...