热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java配列add,Javaday14

###1、Set集合的特点:(1)无序(存储和读取的顺序有肯不一样);(2)不允许重复(要求元素唯一);(3)没有索引###2、HashS

###1、Set集合的特点: (1)无序(存储和读取的顺序有肯不一样); (2)不允许重复(要求元素唯一); (3)没有索引 ###2、HashSet有三种遍历集合对象的方式: (1)转换成数组; (2)迭代器; (3)增强for 例: package com.itheima; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class HashSetDemo { public static void main(String[] args) { //创建集合对象 //HashSet hs=new HashSet(); Set set=new HashSet();//父接口引用指向指向子类对象 //添加元素对象 set.add("hello"); set.add("world"); set.add("java"); //遍历集合对象 //method(set); //method1(set); for(String s:set) { System.out.println(s); } }

public static void method1(Set set) {

//迭代器

Iterator it=set.iterator();

while(it.hasNext()) {

String s=it.next();

System.out.println(s);

}

}

public static void method(Set set) {

//转换成数组

Object[] obj=set.toArray();

for(int i =0;i

System.out.println(obj[i]);

}

}

}

###3、HashSet的add()方法的去重功能: (1)当前集合中的每一个元素和新添加的元素进行hash值比较; (2)如果hash值不一样,则直接添加新元素;如果hash值一样,则比较地址值或者使用equals方法进行比较; (3)如果比较的结果一样,则认为是重复不添加;如果比较的结果不一样,则添加 以Person类为例: @Override public String toString() { return "Person [name=" + name + ", age="+ age + "]"; } @Override public int hashCode() { return age+name.hashCode(); } @Override public boolean equals(Object obj) { System.out.println("---------"); //提高效率 if(this==obj) { return true; } if(this.getClass()!=obj.getClass()) { return false; } //向下转型 Person p=(Person)obj; if(!this.name.equals(p.name)) { return false; } if(this.age!=p.age) { return false; } return true; } 注意: 去重中提高程序效率的方法: 让成员变量不同的对象,他们的返回值也不同,即让HashCode()方法的返回值和对象的成员变量有关,可以让HashCode()方法返回所有成员变量之和(基本数 据类型直接相加;引用数据类型获取HashCode()方法返回值后再相加(boolean不可以参与运算)) ###4、Collection和Collections的区别: (1)Collection是集合体系的最顶层,包含了集合体系的共性; (2)Collections是一个工具类,方法都是用于操作Collection Collections中的一些基本操作: (1)static void swap(List list,int i,int j):将指定列表中的两个索引进行位置互换; (2)static void sort(List list):按照列表中元素的自然顺序进行排序; (3)static void shuffle(List list):随机置换; (4)static void reverse(List list):反转; (5)static void fill(List list,Object obj):使用指定的对象填充指定列表的所有元素; (6)static void copy(List dest,List src):把源列表中的数据覆盖到目标列表中; (7)static void binarySearch(List list,Object key):使用二分查找法查找指定元素在指定列表的索引位置 ###5、Map:专门用于存储对应关系的集合 Map和Collection的区别: (1) Map:是一个双列集合,常用于处理有对应关系的数据,其中key是不能重复的; (2)Collection:是单列集合,有不同的子体系,有的允许重复索引,有序;有的不允许重复索引,无序 注意: Map是将键映射到值的对象。一个映射不能包含重复的键,每个键最多只能映射到一个值(一对一关系) Map的常用功能: (1)V put(K key,V value):将key映射到value,如果key存在,则覆盖value,并将原来的value返回; (2)void clear():清空所有的对应关系; (3)V remove(Object key):根据指定的key删除对应关系,并返回key所对应的值,如果没有删除成功,则返回null; (4)boolean containsKey(Object key):判断指定key是否存在; (5)boolean containsValue(Object value):判断指定value是否存在; (6)boolean isEmpty():判断是否有对应关系; (7)int size():返回对应关系的个数; (8)V get(Object key):根据指定的key返回对应的value; (9)Collection values():以collection的形式返回所有的value; (10)Set keySet():以set的形式返回所有的key 遍历Map的两种方式: 例: (1)遍历Map对象(第一种方式) Set keys=map.keySet(); for(String key:keys) { String value=map.get(key); System.out.println("编号:"+key+"姓名:"+value); (2)遍历Map对象(第二种方式) Set> entrys=map.entrySet(); for(Map.Entry entry:entrys) { String key=entry.getKey(); String value=entry.getValue(); System.out.println("编号:"+key+"姓名:"+value); 注:HashMap的遍历和Map一样,并且可以实现去重,相同编号的后面会覆盖前面的 ###6、异常的体系结构: (1)Throwable(最顶层); (2)Error:出现不能够处理的严重问题; (3)Exception:可以处理的问题 异常是在写代码时出现编译或者运行错误,包含了错误的类型,原因以及位置 ###7、异常的处理方式: 捕获处理 try----catch语句 try{ 可能出现问题的代码; }catch(异常对象){ 处理异常; } 注意:jvm处理异常的方式: 如果出现异常我们没有处理,jvm会帮我们进行处理,他会把异常的类型,原因已经位置显示在命令行,并且终止程序,异常后面的代码将不再执行 ###8、处理多个异常: (1)使用多个try---catch语句; (2)使用一个try和多个catch 注意:多个catch之间的顺序: (1)多个catch之间可以有子父类; (2)同级之间没有顺序关系; (3)如果有子父类,父类异常必须在后面 ###9、Throwable的常用方法: (1)String getMessage():原因; (2)String toString():类型和原因; (3)void printStackTrace():类型、原因和位置 ###10、finally:组合try---catch使用,用于释放资源等收尾工作,无论try---catch语句如何执行,finally的代码一定会执行 格式: try{ 可能出现问题的代码; }catch(异常对象){ 处理异常; }finally{ 释放资源; 清理垃圾; } ###11、异常的分类: (1)运行时期异常:RuntimeException的子类,在编译时期可以自由选择处理或者不处理; (2)编译时期异常:Exception的子类,不是RuntimeException的子类,在编译时期必须处理(抛出或捕获) ###12、throws和throw的区别: (1)throws:处理异常的一种方式,把异常抛出,由调用者来处理; (2)throw:制造异常的方式,并且结束方法 注意:如果抛出(throw)的是编译时期的异常,必须在方法声明处抛出(throws) 定义异常类的方法:写一个类去继承 RuntimeException或 Exception,然后实现多个构造 ###13、递归:在方法本身不断的调用方法自己 注意: (1)递归一定要由出口,否则会内存溢出; (2)递归次数不宜过多,否则会内存溢出



推荐阅读
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
author-avatar
壹起等绿灯
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有