黑马程序员 Java集合框架

脑电数据预处理八:基于 ICA 的伪迹去除 摘要: 脑电图(EEG)数据分析中,伪迹(如眼电、心电、肌电)与脑电信号频谱重叠时,独立成分分析(ICA)成为有效工具。ICA通过盲源分离将混合信号分解为统计独立的成分,识别并移除伪迹后重建干净信号。MNE-Python实现步骤包括:数据预处理(滤波、坏导处理)、ICA分解、人工与自动结合识别伪迹成分、剔除后重建数据。实践建议强调人工检查的重要性,避免过度使用ICA,并保存模型以提高效率。该方法显著提升数据质量,为后续分析奠定基础。 阅读详情

------- android培训、java培训、期待与您交流! ----------

集合类:
集合是存储对象最常用的方式
数组和集合的不同:
数组是固定长度且存的为同一个类型,集合是无限制的
集合的结构框架如下:

collection

           list

               arraylist

               linkedlist

           set

                hashset

                          linkedhashset

                treeset

map

     hashmap

                    linkedhashmap

     treemap

List
:元素是有序的,元素是可以重复的,因为该集合体系有索引
set
:元素是无序的
set
集合的功能和collection是一样的
List
特有的方法:
增:add(index,element);
删:remove(index);
改:set(index,element);
查:get(index,element);
List
集合特有的迭代器ListIterator是Iterator的子接口,在迭代时,不可以通过集合的方法操作集合中的对象,会发生并发修改异常。所以,在迭代是,只能用迭代器的方法操作元素。可是Iterator中的方法是有限的,只能对元素进行判断,取出,删除的操作,如果想要其它操作,如:修改,添加等,就需要使用其子接口(列表迭代器)ListIterator,该接口只能通过List集合的ListIterator方法获取。
 
 ArrayList
和LinkedList使用选择:ArrayList底层数据结构是基于数组结构的,查询速度比较快,不过增删比较慢,另外线程是不同步的。
      LinkedList
底层数据结构是基于链表数据结构,增删速度比较快,不过查询速度比较慢,线程也是不同步的.
vector
:底层是数组数据结构  线程同步
枚举是vector特有的去除方式
LinkedList
中特有的方法:
addFirst(); addLast(); getFirst(); getLast(); removeFirst(); removeLast();
JDK1.6
出现了替代方法:
offerFirst(); offerLast(); peekFirst(); peekLast(); pollFirst(); pollLast();
List
集合判断元素是否相同一句是元素的equals方法.
Set
HashSet:
底层数据结构是哈希表,线程是非同步的
HashSet
是如何保证元素唯一性?
 
是通过元素的两个方法:hashCode和equals来完成
往集合里面存入元素的时候,会先调用hashCode方法去获取所存元素的HashCode值,如果HashCode值与集合中已经存入元素的     HashCode值   不相同,就会把元素存入集合中;如果HashCode值和已存入的某个元素的HashCode值相同,然后就会调用equals方法去比较这两个HashCode值相同的元  素是否为同一个元素。
import java.util.*; 
class HashSetDemo { 
    public static void main(String[] args){ 
        HashSet<Student> hs = newHashSet<Student>(); 
        hs.add(new Student("zhangsan",26)); 
        hs.add(new Student("lisi",25)); 
        hs.add(new Student("wangwu",21)); 
        hs.add(new Student("wangwu",21)); 
        hs.add(new Student("zhangsan",26)); 
        Iterator<Student> it = hs.iterator();      //
使用迭代器取出元素 
 
        while(it.hasNext()){ 
            Student s = it.next(); 
           System.out.println(s.getName()+".."+s.getAge()); 
        }            
    } 
} 
//
定义一个学生类  
class Student{ 
    private String name; 
    private int age; 
    Student(String name,int age){ 
        this.name = name; 
        this.age = age; 
         
    } 
    public int hashCode(){                             //
覆写hashCode方法 
       System.out.println("hashCode"+"..."+this.name);    
        return name.hashCode()+age*21;                 //*21
为提高效率            
    } 
    public boolean equals(Object obj){       //
如果hashCode方法return值为0,然后调用equals方法判断  
        if(!(obj instanceof Student)) 
            return false; 
        Student s = (Student)obj; 
        System.out.println(this.name+".."+s.name); 
       System.out.println(this.age+".."+s.age); 
        returnthis.name.equals(s.name)&&this.age==s.age;           
    } 
    public String getName() { 
        return name; 
    } 
    public void setName(String name) { 
        this.name = name; 
    } 
    public int getAge() { 
        return age; 
    } 
    public void setAge(int age) { 
        this.age = age; 
    } 
} 
TreeSet
:
特点:可以对set集合中的元素进行排序
comparable
该接口强制对子类进行排序,排序是当主要条件相同时一定要判断一下次要条件
底层数据结构是二杈数
保证元素唯一性的依据是:compareTo方法return
    TreeSet
第一种排序方式:让元素自身具备比较性元素需要实现comparable接口覆盖compareTo方法,这种方式也称为元素的自然顺序
    TreeSet
第二种排序:当元素本身不具备比较性时,或者具备的比较性不是所需要的,这时就需要让集合自身具备比较性
在集合初始化时就有了比较方式,当2种排序都存在时以比较器为主.
import java.util.*; 
class TreeSetDemo { 
    public static void main(String[] args){      
        TreeSet<Person> ts = newTreeSet<Person>(new myComparator()); 
    
        ts.add(new Person("zhangsan1",25)); 
        ts.add(new Person("zhangsan3",22)); 
        ts.add(new Person("zhangsan2",21)); 
        ts.add(new Person("zhangsan4",26)); 
        ts.add(new Person("zhangsan1",21)); 
        Iterator<Person> it = ts.iterator(); 
        while(it.hasNext()){ 
            Person p =it.next(); 
           System.out.println(p.getName()+".."+p.getAge());        
        }        
    } 
} 
class myComparator implements Comparator<Object>   
{ 
   public int compare(Object obj1,Object obj2){ 
       Person p1 =(Person)obj1; 
       Person p2 =(Person)obj2;     
       int num = new Integer(p1.getAge()).compareTo(newInteger(p2.getAge()));   
       if(num==0) 
           returnp1.getName().compareTo(p2.getName());    
       return num;    
   }     
} 
class Person  implements Comparable<Object> 
{ 
    private String name; 
    private int age; 
    public int compareTo(Object obj){ 
        if(obj instanceof Person){                    
          Person p =(Person)obj; 
         int num2 = this.getName().compareTo(p.getName());     
         if(num2==0){ 
             return newInteger(this.getAge()).compareTo(new Integer(p.getAge())); 
              
         } 
          return num2; 
        } 
        else 
           throw new RuntimeException();    
    } 
    Person(String name,int age){ 
        this.name = name; 
        this.age = age; 
    } 
    public String getName() { 
        return name; 
    } 
    public void setName(String name) { 
        this.name = name; 
    } 
    public int getAge() { 
        return age; 
    } 
    public void setAge(int age) { 
        this.age = age;
    }    
} 
泛型(在以后的java基础加强里面会有更详细的讲解)
泛型JDK1.5版本出现的新特性用于解决安全问题是一个安全机制
ArrayList<String> al = new ArrayList<String>();
好处:
1.
将运行时期出现的问题转移到了编译时期
2.
避免了强制转换
格式:
通过<>来定义要操作的引用数据类型
什么时候用泛型?
通常在集合框架中很常见,看到<>(尖括号)基本都要用到
当类中要操作的引用数据类型不确定时,早起定义object来完成扩展现在定义泛型来完成
为了让不同方法可以操作不同类型,而且类型还不确定,可以将泛型定义在方法上
特殊之处:
static
方法不可以访问类上定义的泛型,如果静态方法操作的数据类型不确定可以将泛型定义在方法上
Map
Map<K,V>K:
键的类型  V:映射值的类型
Mapde
子类
     HashTable:
底层是哈希表结构,不可以存入null键null值  线程是同步的
     HashMap:
底层是哈希表结构允许使用null   线程是非同步的
    TreeMap:
底层二叉数结构,线程是不同步的,可以给map集合中的键进行排序
Map
集合的两种取出方式:
1  .Set<K> keySet:
将Map集合中的键存入到Set集合,因为Set集合可以使用迭代器取出所有的键,把键取出之后可以使用get(key)方法获取每一个键对应的值。
 2  .Set<Map.Entry<k,v>> entrySet:
将Map集合的映射关系存入到Set集合中,而这个关系的数据类型就是Map.Entry。用迭代器把所有的映射关系取出以后,可以使用getKey和getValue方法取出对应的键和值.
集合的取出原理:
将map集合转化为set集合然后通过迭代器取出
map
集合被使用是因为具备映射关系
需求:获取"sdfgcvasdf"字母出现的次数
import java.util.*; 
class TreeMapDemo { 
    public static void main(String[] args) { 
     String s= getStringMethod("sdfgcvasdf"); 
      System.out.println(s); 
    } 
    public static String getStringMethod(String s){ 
      char[] ch = s.toCharArray();
                             
     TreeMap<Character,Integer> sm = newTreeMap<Character,Integer>();  
       for(char chs : ch){                
         if(sm.get(chs)==null)
                                
             sm.put(chs, 1);
 
         else{ 
         int value = sm.get(chs);                          
         sm.put(chs,value+1 ); 
         } 
     } 
     Set<Map.Entry<Character,Integer>> se=sm.entrySet();        
        StringBuilder sb = new StringBuilder(); 
                
       Iterator<Map.Entry<Character,Integer>>it = se.iterator();
 
       while(it.hasNext()){                                    
           Map.Entry<Character,Integer>me=it.next(); 
             Character key =me.getKey(); 


             Integer value=me.getValue(); 
            sb.append(key+"("+value+")"+",");     
       } 
           StringBuildersb1=sb.deleteCharAt(sb.length()-1);      
           return sb1.toString(); 
    } 
 
} 

 

CentOS7下快速修复libssl.so.1.1缺失问题(附腾讯云镜像加速下载) 本文详细介绍了在CentOS7系统中快速修复libssl.so.1.1缺失问题的工程化实践方案。通过编译安装OpenSSL 1.1.x版本、配置动态链接器及创建符号链接等步骤,有效解决共享对象文件缺失问题,并提供了腾讯云镜像加速下载的优化方案,帮助开发者高效部署现代应用。 阅读详情

相关推荐

实战复盘:一次绕过WAF的EDUSRC SQL注入漏洞挖掘

本文详细复盘了一次针对教育行业网站的SQL注入漏洞挖掘实战。通过手动信息收集发现可疑点,并利用‘+’号替换空格等技巧,成功绕过WAF(Web应用防火墙)的拦截。文章逐步演示了从判断注入点到手工获取数据结构、最终解密进入后台的完整过程,并总结了手工测试的优势及高级绕过思路,强调了在EDUSRC等授权范围内进行安全测试的重要性。

weixin_28622215的博客 191

黑马程序员——Java集合框架

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。 集合有ArrayList、Vector、hashmap、linklist、treemap、hashset等多种实现。为了屏蔽实现差异,java提供

qq_33863460的博客 366

从零实现机械臂抓取仿真:用MoveIt+Gazebo完成物体pick&place全流程

本文详细介绍了如何使用ROS的MoveIt框架与Gazebo仿真环境,从零构建机械臂抓取仿真系统。涵盖环境搭建、MoveIt配置、Gazebo集成、抓取动作实现等全流程,帮助开发者掌握机械臂控制的核心技术,实现高效的pick&place任务。

weixin_29250403的博客 475

黑马程序员———java 集合框架

java 集合框架 集合类 为什么出现集合类?   面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,  集合就是存储对象最常用的一种方式。  数组和集合类同是容器,有何不同?  数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集  合只能存储对象。而数组里存的都是指定类型的元素,而集合中可存放不同类型

lqf123lrf的专栏 423

戴维南和诺顿定理到底怎么选?一个实际维修案例讲透两种等效电路用法

本文通过工业电源模块维修案例,详细解析戴维南和诺顿定理在实际电路分析中的选择策略。针对电压敏感型故障、电流分配问题及功率传输异常,提供三大黄金法则,帮助工程师高效选择等效电路方法,提升故障排查效率。特别强调诺顿定理在电流分析中的优势。

weixin_31854867的博客 357

软件工程导论实践:从需求到架构的机票预订系统全流程解析

本文深入解析机票预订系统从需求分析到架构设计的全流程实践,涵盖业务流程、功能建模、模块化设计、性能优化等关键环节。通过实际项目经验,分享软件工程导论在复杂系统开发中的应用技巧,包括数据流图绘制、E-R图设计、微服务架构及高并发处理等实战策略,助力开发者构建高效可靠的机票预订系统。

weixin_29202213的博客 412

黑马程序员—————— Java集合框架Collection

Java集合框架Collection: Collection Collection Collection Collection Collection Collection

W_lilong的博客 706

ADS实战指南:负载牵引(Loadpull)在射频功放设计中的关键应用

本文深入解析了负载牵引(Loadpull)技术在射频功率放大器设计中的核心作用与实战方法。通过生动的比喻和详细的ADS软件操作指南,阐述了如何通过系统扫描负载阻抗,在史密斯圆图上绘制等功率线与等效率线,从而精准找到最优阻抗点,以平衡输出功率与效率,是应对5G等现代通信系统严苛要求的必备技能。

weixin_29198045的博客 600

《黑马程序员》java笔记->集合框架集合大总结

------- android培训、java培训、期待与您交流! ---------- 1. Java集合框架概述 2.List接口以及实现类 3.Set接口以及实现类 4.Map接口以及实现类 5.Boxing/unBoxing 6.Iterator以及Enumeration接口 7.Collections和Arrays类 ----------------------

bb175pt的专栏 998

时间序列分析(Time Series Analysis) 原理与代码实例讲解

时间序列分析(Time Series Analysis) - 原理与代码实例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 关键词:时间序列预测,ARIMA模型,状态空间模型,SARIMA模型,机器学习

AI天才研究院 1246

【文献笔记】ICCV 2021 | Point Transformer

作者提到,特别适合点云处理,因为自注意力机制是的核心,本质上就是一个集合算子:它对输入元素具有顺序不变性和数量不变性3D点云是无序的,即使改变点云txt文件中的点顺序也不会有任何影响。自注意力机制天然具有排列不变性,因为它通过对所有"点对"的关系进行建模来处理输入,而不依赖于任何特定的输入顺序点云数据通常覆盖了3D空间中的对象或场景,理解这些数据需要捕捉点与点之间复杂的空间关系。自注意力机制能够有效的捕捉这些关系,因为它为每个"点对"赋予一个。

m0_55908255的博客 965

黑马程序员-java集合框架

 ---------------------- ASP.Net+Unity">http://www.itheima.com"target="blank">ASP.Net+Unity开发、.Net">http://www.itheima.com"target="blank">.Net培训、期待与您交流! ----------------------  java中的集合框架实际上就

LinsCode的专栏 620

我的AI个人公司成立:基于Skills与Qwen大模型的智能问答平台实战开发+龙虾团队

微学AI推出数字员工矩阵,包含10个核心AI角色(总经理、秘书、工程师等),每个角色具备专属技能模块。系统采用FastAPI+Vue3技术栈,核心功能包括:基于SkillLoader的动态技能管理(支持脚本执行和文档加载)、WebSocket流式输出、多轮对话上下文管理。通过模块化架构实现AI自驱协作,可自主完成从需求分析到开发落地的全流程。项目亮点在于声明式技能配置和实时交互能力,打破传统办公壁垒,提升工作效率。

微学AI的博客 1623

黑马程序员——java复习总结——集合框架

------ android培训、java培训、期待与您交流! ---------- 一、集合类   面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象操作,就对对象进行存储,集合就是存储对象最常用的一个方式。   数组虽然也可以存储对象,但是长度是固定的,集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。而且集合可以存储不同类型的对象,数组只

key_fans的博客 558

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

黑马程序员 java 集合框架

那些情况使用集合框架?   写程序时并不知道程序运行时会需要多少对象,或者需要更复杂的方式存储对象---那么可以使用java集合框架       collection接口存储一组不唯一无序的对象   list接口存储不唯一、有序插入顺序的对象   set接口存储一组唯一、无序的对象   map接口存储一组键组对象,提供key键到value值得  映射   ArrayList实现了

sunshuai686的专栏 642

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

黑马程序员 Java的集合框架

---------------------- android培训、java培训、期待与您交流! ----------------------         Java中的集合是用来存储对象的,为了方便对多个对象的操作,就对对象进行存储,集合就是春初对象最常用的一种方式。         数组虽然可以存储对象,但长度是固定的,集合的长多是可变的,数组中可存储基本数据类型,而集合只能存储对象。

kobe24dh的专栏 295

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

黑马程序员——Java基础之集合框架

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------             Java基础之集合框架 1.什么是集合,集合的作用:         面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就要 对对象进行存储,集合就是存储对象最常用的一种方式。         数组和集合类同是容器,再者之间存在不同:

ajin2015的博客 577

黑马程序员————java集合框架详解

集合干什么的? 当数据多了,我们可以用对象存储。那么当对象多时,我们就可以用数组和集合来存储。      数组和集合的区别是:数组只能存同类型的数据,并且数组的长度是固定的。     集合可以存多种类型,并且长度可变。 每个容器对数据的存储方式不同,这种存储方式称为数据结构。 集合存放的是对象地址,不是对象实体。 迭代器的作用 迭代器用于集合取出元素的方式。 取出方式定

mu_jiao的专栏 590

黑马程序员——Java集合框架—整理笔记

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 集合框架:为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。

nanfp的博客 774

黑马程序员java之集合框架Collection

------- android培训、java培训、期待与您交流! ---------- Collection    |--List:元素是有序的,元素可以重复。因为该集合体系有索引。    List集合判断元素是否相同,依据是元素的equals方法。       |--ArrayList:底层的数据结构使用的是数组结构。特点:查    询速度很快。但是增删稍慢。线程

Zero_2的博客 495

黑马程序员_Java集合框架

集合框架:   集合:          面向对象语言对事物的体现都是以对象的形式为了方便对多个对象的操作,就对对象进行了存储,集合就是存储对象最常用的一种方法   数组和集合类的区别:          1、数组虽然也可以存储对象,但是数组的长度是固定的,集合类的长度是可以改变的          2、数组中可以存储基本数据类型,集合类只能存储对象   集合类的特点 1、 

as343542581的专栏 356

黑马程序员——java基础——集合框架

(1)对象数组概述: 代码注意事项:A:自己的类名不要和我们学习的要使用的API的类名相同。               B:复制代码的时候,很容易把那个类所在的包也导入过来,容易出现不能理解的问题。 数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。 2:集合(Collection)       (1)集合的由来?               我

Cathy_ndi的博客 769

黑马程序员—java基础—集合框架

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------   集合框架 说到集合框架,脑袋里便想到了两个分支,单列集合和双列集合,先上一个整体的结构图片吧   集合的概念: 集合的概念:  1.数组的弊端:  1).长度是固定的,后期不能改变;  2).数组一旦定以后,其类型就固定了,只能存储此类型数据;  2.Java为我们提

Chenhaiyang__ith的博客 519

黑马程序员_java_集合框架

------- android培训、java培训、期待与您交流! ---------- 本博客写到了集合框架中各个容器的区别;hashset和treeSet对集合;迭代器及使用泛型迭代器的使用;TreeSet自定义比较的2中方法。MAP中元素取出的2种方式。

G55_AMG的专栏 875

黑马程序员java之集合框架Map

------- android培训、java培训、期待与您交流! ---------- Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。 |--Hashtable:底层是哈希表数据结构,是线程同步的。不可以存储null键,null值。 |--HashMap:底层是哈希表数据结构,是线程不同步的。可以存储null键,null值。替代了Hash

Zero_2的博客 381
上一篇: 黑马程序员 Java的面向对象特性
下一篇: 黑马程序员 Java常用API
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值