首页 > 编程语言 >JavaSE基础07(集合)

JavaSE基础07(集合)

时间:2023-10-16 20:12:28浏览次数:37  
标签:set 07 ArrayList Object list 数组 集合 JavaSE

  • 集合collection

  1. 数组存放数据的弊端:
    1. 数组定义后长度不可变;
    2. 定义数组的类型不能变,数据只能存放指定类型的对象;
  2. 解决数组存放的弊端方法:
    1. 摒弃小数组,换一个更大的来存放(动态数组扩容);
    2. 数组定义成Object,可以存放所有的类型;
    3. 集合扩容 在原来的基础上+>>1;
  3. System.arraycopy(Object src,int srcPos,Object dre,int destPos,int length);
  4. 数组的复制参数: (原数组 原数组开始复制的位置 目标数组  从哪个位置开始粘贴到目标数组  复制数组的个数);
  • ArrayList
  1. ArrayList list=new ArrayList();    首先创建ArrayList对象;
  2.  list.add() ,往集合里添加元素或 list.add(要添入的位置,添入数组);
  3. list.set(要修改的位置,修改的值); 修改数据
  4. list.remove(要删除元素的下标)或list.remove(要删除的元素);
  5. list.get(下标值)查数据;
  6. 有序集合,进出数据是一样的;
  • 遍历数组方法
    • 迭代器
              ArrayList list=init();//init()方法返回的ArrayList
              //迭代器 用于遍历集合的每一个元素
              Iterator it=list.iterator();
              //是否有下一个数据
              while (it.hasNext()){
                  //获取下一个数据
                  Object obj=it.next();
                  System.out.print(obj+",");
              }
    •  把集合放在数组里,然后遍历数组;

              Object[] arr=list.toArray();//把集合放在Object数组里
              System.out.println(Arrays.toString(arr));//打印数组

       

  • LinkedList
  1. LinkedList使用的是双向链表;
  2. 查找使用ArrayList更快;
  3. 插入和删除使用LinkedList更优;
  • Set集合
  1. 无序集合,不能存在重复的数据;
  2. 使用equals方法验证数据是否相等;
  3. 遍历set集合;
            for(Object obj:set) {//把每一个都赋给obj
                System.out.println(obj);
            }
  4. 验证set里面有没有这个元素     返回的是布尔值;
            boolean b =set.contains("张三");//验证set里面有没有这个元素  返回布尔类型
            System.out.println(b);

  • HashSet
  1. 可以存储null值,只能存储一个;
  2. 主要用于安全验证上;
  • TreeSet
  1. 排序集合,但是也是无序集合;
  2. 不可以存放null值,null值不可比较;
  3. 存的数据都是可比较的,尽量存同类数据;
  4. 数据结构是红黑树;

 

标签:set,07,ArrayList,Object,list,数组,集合,JavaSE
From: https://www.cnblogs.com/wxy01/p/17767183.html

相关文章

  • Java常见集合类学习笔记
    List1.ArrayListVectorLinkedList区别​ ArrayList和Vector底层实现基本相同,都是基于数组实现的,只是Vector的方法用synchronized修饰;所以ArrayList是线程不安全的,Vector是线程安全的。​ LinkedList底层基于双向链表实现,方法没有用synchronized修饰,线程不安全。2.数组和......
  • 大集合里查询数据-布隆过滤器
    1.问题场景有100亿个url被加入了黑名单,现在提供一个url要去判断是否属于黑名单。也就是一个很简单的一个东西是否属于一个集合的问题。一般来说用set就能解决这种问题,但是由于url数目太多,内存中无法开辟一个这么大的空间去存放所有url,这个时候就需要我们去使用一种结构,去减少状......
  • 基于JT/T1078协议的开源 java视频服务系统
    ​首先,让我们来概述一下JT/T1078协议。JT/T1078协议,也称为"道路交通视频监控系统信息模型与通信协议",是由中华人民共和国交通运输部提出并规范的一种视频服务协议,主要应用于道路交通视频监控系统的设计和实施。其目的是确保视频服务的互操作性、可扩展性和安全性。基于JT/T1078......
  • PAT_A1070 Mooncake
    MooncakeisaChinesebakeryproducttraditionallyeatenduringtheMid-AutumnFestival.Manytypesoffillingsandcrustscanbefoundintraditionalmooncakesaccordingtotheregion'sculture.Nowgiventheinventoryamountsandthepricesofall......
  • 20231407陈原《计算机科学与概论》及《C语言程序设计》第三周学习情况
    [2022-2023-1-计算机基础与程序设计]2023-2024-1计算机基础与程序设计第三周作业https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP[2022-2023-1计算机基础与程序设计第一周作业](https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03)作业目标学习《计算机科......
  • P2607 [ZJOI2008] 骑士
    P2607[ZJOI2008]骑士[P2607ZJOI2008]骑士-洛谷|计算机科学教育新生态(luogu.com.cn)目录P2607[ZJOI2008]骑士题目大意思路code题目大意给你一个\(n\)个点,\(n\)条边的基环树森林。你可以从中选择若干个点,满足两两之间不存在边相连。每个点有一个权值,请问最大的......
  • LeetCode Day04 24&19&02.07&142
    24. 两两交换链表中的节点这题使用虚拟头结点会更好做,因为有虚拟头结点我们交换结点的时候步骤会更加清晰。操作此类有指针类型的题目要注意:1.画图避免混乱2.注意指针先后顺序classSolution{publicListNodeswapPairs(ListNodehead){ListNodedumyhea......
  • Java基础 不可变集合详解
    如果不想让别人修改集合中的内容,只想让别人仅能够查询数据,就可以用不可变集合 在List、Set、Map接口中,都存在静态的of方法,可以获取一个不可变的集合eg:List<String>list=List.of("张三","李四");......
  • 集合论初步
    零、弁言或者更像是一种读书笔记。鉴于笔者的低下智力,以这种方式来把第一次阅读时的一些可能的问题或思考过程进行记录。其余的一些文本会在闲暇时更新。前提是我还活着。这里是康托的乐园。欢迎各位。1.一些无聊的数学史——有关于无穷Aristotle首次提出潜在的无穷概念,并......
  • 07-建立时间和保留时间
    建立时间和保留时间首先,我们必须有一个观点,就是对任何一种触发器在时钟触发沿儿前后的一个小的时间窗口内,输入的信号必须稳定。这样的作用,也就是说我们时钟沿而来的时候,我们捕获的数据也是稳定的值,也就是确定的值。那如果不稳定呢,如果数据变化在这个时钟沿,那请问你这个时钟捕......