精华内容
下载资源
问答
  • java有序不重复的集合
    2022-03-23 10:28:09

    new一个list和一个set,先将数据插入到set中,如果插入成功在插入到list中:

    if(set.add(data)){
    	list.add(data);
    }
    

    最后返回list

    更多相关内容
  • java实现有序不重复集合

    千次阅读 2020-07-27 18:25:42
    需求背景:数据进行批量处理...import java.util.LinkedList; public class SetList<T> extends LinkedList<T> { private static final long serialVersionUID = 3612971767507405567L; @Override

    需求背景:数据进行批量处理得时候,既要去重又要保留文本域中数据的顺序

    解决方法:

    1.新建一个工具类SetList

    package util;
     
    import java.util.LinkedList;
     
    public class SetList<T> extends LinkedList<T> {
     
        private static final long serialVersionUID = 3612971767507405567L;
     
        @Override
        public boolean add(T object){
            if(size() == 0){
                return super.add(object);
            }else{
                int count = 0;
                for (T t : this){
                    if(t.equals(object)){
                        count ++;
                        break;
                    }
                }
                if (count == 0){
                    return super.add(object);
                }else{
                    return false;
                }
            }
        }
     
    }
    

    2.去重并保留原来的顺序

    //去重并保留原来的顺序
        public String[] distinctByArr(String[] arr){
            if(arr != null && arr.length > 0){
                SetList<String> setList = new SetList<>();
                for(String str : arr){
                    setList.add(str);
                }
                String[] arr_new = new String[setList.size()];
                for(int i=0;i<setList.size(); i++){
                    arr_new[i] = setList.get(i);
                }
                return arr_new;
            }else{
                return arr;
            }
        }
    
    展开全文
  • 由于课程设计的需要,笔者需要将...Set接口是无序不重复的,不能用下标定位数据结合他们之间的优缺点和数据量,在不考虑性能的情况下,笔者写了有序不重复集合总体是基于LinkedList实现的,重写其add方法List为空...

    由于课程设计的需要,笔者需要将数据库中的某个表的数据拿出来处理

    例如楼层和建筑表,有外键限制

    一开始是使用List保存的,但实际操作中发现,从表中取出来楼层数据中的建筑有些是重复的

    List接口实现的存储是有序可重复的,Set接口是无序不重复的,不能用下标定位数据

    结合他们之间的优缺点和数据量,在不考虑性能的情况下,笔者写了有序不重复的集合

    总体是基于LinkedList实现的,重写其add方法

    List为空,就直接添加对象,不为空,就遍历List,判断其中中是否有与待插入的对象是否相同

    SetList类如下

    public class SetList extends LinkedList {

    private static final long serialVersionUID = 1434324234L;

    @Override

    public boolean add(T object) {

    if (size() == 0) {

    return super.add(object);

    } else {

    int count = 0;

    for (T t : this) {

    if (t.equals(object)) {

    count++;

    break;

    }

    }

    if (count == 0) {

    return super.add(object);

    } else {

    return false;

    }

    }

    }

    }

    Person类

    public class Person {

    private int id, age;

    private String name, sex;

    @Override

    public boolean equals(Object obj) {

    if (this == obj)

    return true;

    if (obj == null)

    return false;

    if (getClass() != obj.getClass())

    return false;

    Person other = (Person) obj;

    if (id != other.id)

    return false;

    return true;

    }

    @Override

    public String toString() {

    return "Person [id=" + id + ", age=" + age + ", name=" + name

    + ", sex=" + sex + "]";

    }

    //省略构造器、get和set等

    }

    调用

    @Test

    public void test(){

    List list = new SetList<>();

    list.add(new Person(1, 20, "小明", "男"));

    list.add(new Person(2, 20, "小红", "女"));

    list.add(new Person(2, 20, "小花", "女"));

    list.add(new Person(4, 20, "小辉", "未知"));

    System.out.println(list);

    }

    输出结果

    [Person [id=1, age=20, name=小明, sex=男], Person [id=2, age=20, name=小红, sex=女], Person [id=4, age=20, name=小辉, sex=未知]]

    展开全文
  • 一眼看懂Java中的集合

    2020-05-13 16:12:05
    此篇文章是学习Java中的集合时自己总结的笔记,主要记录了集合的底层原理、List、Set、Queue等集合的特点、集合的实现类的特点以及各个实现类底层是原理。
  • 一下为Lsit的一些方法示例//List集合有序的,允许重复的每个元素都有对应的索引,可以通过索引来访问元素//索引下标从0开始package List;import java.util.ArrayList;import java.util.List;public class ListTest...

    一下为Lsit的一些方法示例//List集合是有序的,允许重复的每个元素都有对应的索引,可以通过索引来访问元素

    //索引下标从0开始

    package List;

    import java.util.ArrayList;

    import java.util.List;

    public class ListTest {

    public static void main(String args[]){

    List list = new ArrayList();

    list.add(new String("java1"));

    list.add(new String("java2"));

    list.add(new String("java3"));

    list.add(1, new String("java4"));

    // 将下标为1(也就是第二个元素)置为 java4,本来的元素从第二个元素开始全部往后移动

    // 一位

    for(int i=0 ;i

    System.out.print(list.get(i) + ",");

    // 通过get(i)(i为下标)可以访问list指定位置的元素

    }

    System.out.println();

    list.remove(2);

    // 删除指定下标的元素(下标为2即时第三个元素)

    System.out.println(list);

    System.out.println(list.indexOf(new String("java1")) );

    // 注意,这里indexOf()会返回1,说明indexOf()方法不是通过 == 来匹配元素

    // 而是通过equals()方法来匹配的

    list.set(1, new String("java5"));

    // 设置特定下标为特定元素

    System.out.println(list);

    System.out.println(list.subList(1,2));

    // 包头不包尾

    }

    }

    //输出结果

    // java1,java4,java2,java3,

    // [java1, java4, java3]

    // 0

    // [java1, java5, java3]

    // [java5]

    相关文章:

    相关视频:

    展开全文
  • **如题,怎么存放一个对象集合,是有序的,集合中的对象也是不重复的额,最好可以高效一些。**
  • 2、Set集合特点: 3、分类(实现子类): 4、所有已知实现类: 5、注意事项 6、所有方法 第二重境界:未尝见全牛也 HashSet 1、HashSet特点: 2、HashSet集合添加一个元素的过程: 3、代码演示 4、注意...
  • PS:本文中的“有序”指的是存储数据时输入顺序与数据输出顺序相等,“唯一”:指的是不重复 首先我们知道java集合有两个接口;一个是Collection,一个是Map; 其中Colection衍生出了两个子接口也就是平时我们...
  • Java有序集合&hashMap

    千次阅读 2022-03-25 15:56:55
    文章目录前言TreeSet基础数据类型复杂数据类型小技巧TreeMap基础类型复合类型演示代码(完整) 前言 ...并且查找的时间复杂度大概在 logn ,还是相当不错的,在一些实在是想到的题目里面合理地使用
  • 下面我们来看一下java不重复集合。Set:典型实现 HashSet()是一个无序,不可重复的集合1、Set hashSet = new HashSet();①、HashSet:不能保证元素的顺序;不可重复;不是线程安全的;集合元素可以为 NULL;②、其...
  • Java集合

    2021-06-13 11:49:12
    Java集合大致上可分为:Set,List和Map三种体系,其中Set代表无序,重复集合;List代表有序重复集合,而Map则代表具有映射关系的集合。Queue体系集合,代表一种队列集合实现。 Java集合就像是一个容器,...
  • 有序不重复集合

    千次阅读 2018-01-10 18:47:08
    import java.util.LinkedList; public class SetList extends LinkedList{ ... 自定义一个不重复有序集合 */ private static final long serialVersionUID = 3612971767507405567L; @Override   pu
  • import java.util.LinkedHashSet; public class Linkedhashset { public static void main(String[] args) { // TODO 自动生成的方法存根 LinkedHashSet<String> s1 = new LinkedHashSet<>(); ...
  • java集合类型介绍

    2021-03-17 10:53:11
    2020-06-29 11:09:31来源:亿速云阅读:94作者:Leah本篇文章给大家分享的是有关java集合类型介绍,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话多说,跟着小编一起来看看...
  • JAVA集合类汇总

    2021-03-22 14:35:57
    1、List(有序、可重复)List里存放的对象是...2、Set(无序、重复)Set里存放的对象是无序,重复的,集合中的对象按特定的方式排序,只是简单地把对象加入集合中。3、Map(键值对、键唯一、值唯一)Map集合...
  • Java中的集合

    2021-04-23 13:48:11
    List:有序重复。Map:具有映射关系(键值对)。注意:1. 集合与数组有什么一样,集合只能保存对象,而数组可以保存对象也可以保存基本类型值。(Java 5以上自动装箱,所以这边看似好像集合可以里可以存放基本类型,...
  • 文章目录1 Collection1.1 数组和集合的区别1.2 集合的特点1.3 Collection的方法1.4 遍历2 List有序集合-ArrayList和LinkedList2.1 特有方法2.2 ArrayList2.3 LinkedList3 Set无序唯一集合LinkedHashSet-TreeSet3.1 ...
  • Java有序列表

    2022-03-02 17:55:51
    适合于高并发场景,且列表不重复的情况下使用 TreeSet 基于红黑树的set集合 特性: * 非线程安全 * 唯一性 适合于非并发场景,且列表不重复的情况下使用 PriorityBlockingQueue 基于完全二叉树的队列...
  • java list有序还是无序_java集合框架

    千次阅读 2021-08-02 11:20:35
    前言 使用java编程语言的开发人员,在日常开发过程中经常会使用到java的一些集合类,不过这些集合类太多,很多人对它们的特点和使用场景不是特别的了解,通过此文给大家总结一下这...1、List( 有序、可重复) ArrayL
  • JAVA 链表的有序集合

    2018-04-25 09:42:47
    链表的有序集合Time Limit: 1000 ms Memory Limit: 65536 KiBSubmit StatisticProblem Description 集合有一个重要的特性:互异性,即集合中任意两个元素都是不同的,互异性使得集合中的元素没有重复。...
  • List集合概述List集合是一个元素有序(每个元素都有对应的顺序索引,第一个元素索引为0)、且可重复集合。List集合常用方法List是Collection接口的子接口,拥有Collection所有方法外,还有一些对索引操作的方法。...
  • Java集合总结.txt

    2022-06-03 23:47:40
    特点:有序的,且可重复 ArrayList: 数据结构:一维数组 LinkedList: 数据结构:双向链表 Vector: 数据结构:一维数组 Stack: 数据结构:一维数组 特点:模拟了栈的模式 Set -- ...
  • 总结:除了set重复,其余均可重复;map中key重复,value可重复             除了list和tree有序,其余均无序 转载:...
  • Java双列集合HashMap

    2020-12-22 17:16:36
    双列集合HashMap是属于java集合框架3大类接口的Map类, Map接口储存一组成对的键-值对象,提供key(键)到value(值)的映射.Map中的key要求有序允许重复.value同样要求有序,但允许重复.  Iterator接口是...
  • 是否有序指的是集合中的元素是否会按照插入的先后顺序来存储,而不是指集合中的元素本身是否有序 List public interface List<E> extends Collection<E> List 中的元素都是有序的,其常见的实现类有 ...
  • java集合超详解

    万次阅读 多人点赞 2018-08-03 21:28:15
    一、集合大纲 ...├——-List 接口:元素按进入先后有序保存,可重复 │—————-├ LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程安全 │—————-├ ArrayList 接口...
  •  无序:Set,重复  有序:List,允许重复  “key-value”对:Map  (2)读写数据效率  Hash:两者都高。  Array:读快改慢。  Linked:读慢改快。  Tree:加入元素可排序使用。  2、泛型  ...
  • set不允许出现重复的值(key)List是不能存储重复数据的,而我们想利用List存储不重复的元素,一般都使用List自带的contains方法对元素进行判断,如果不包含再进行添加,但是这样太耗时了。含再进行添加,但是这样太...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 104,953
精华内容 41,981
关键字:

java有序不重复的集合