版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java类库和常用类简介Java语言基础类库String类和StringBuffer类常用工具类库2021/6/271类库简介java.lang它是由编译器自动引入的,包括:Object类,数据包装类,数学类,异常处理类,线程类,字符串处理类,系统及运行类,类操作类等;java.applet用于创建小程序;java.awt用于创建图形用户界面;java.io输入输出流网络包,用于网络通讯java.util实用程序包,提供许多不同功能的类,如日期时间类,矢量类,数据结构类等2021/6/272Java中的Math类Math类
数学类包含了许多数学函数,如sin、cos、exp、abs等。Math类是一个工具类,它在解决与数学有关的一些问题是有着非常重要的作用。
这个类有两个静态属性:E和PI。E代表数学中的e2.7182818,而PI代表派pi3.1415926。引用时,用法如:Math.E和Math.Pi2021/6/273Java中的Math类这个类的方法有:
publicstaticintabs(inta)
publicstaticlongabs(longa)
publicstaticfloatabs(floata)
publicstaticdoubleabs(doublea)
abs方法用来求绝对值。
2021/6/274Java中的Math类publicstaticnativedoublesin(doublea)
sin求正弦函数。
publicstaticnativedoubletan(doublea)
tan求正切函数。
atan求反正切函数。publicstaticnativedoublecos(doublea)
cos求余弦函数。……2021/6/275Java中的Math类publicstaticnativedoubleceil(doublea)
ceil返回最小的大于a的整数。(天花板)publicstaticnativedoubleexp(doublea)
exp求e的a次幂。publicstaticnativedoublefloor(doublea)
floor返回最大的小于a的整数。publicstaticnativedoublelog(doublea)
log返回lna。2021/6/276Java中的Math类publicstaticnativedoublepow(doublea,doubleb)
pow求a的b次幂。publicstaticnativedoublesqrt(doublea)
sqrt求a的开平方。publicstaticsynchronizeddoublerandom()
返回0到1之间的随机数。publicstaticround(doubled)publicstaticround(floatf)
取整,四舍五入2021/6/277Java中的Math类publicclassMathDemo{publicstaticvoidmain(Stringargs[]){System.out.println(Math.ceil(3.45));System.out.println(Math.floor(3.55));System.out.println(Math.round(3.35));System.out.println(Math.round(3.5));System.out.println(Math.random());}}2021/6/278随机数类java.util.Random
Random()
创建一个新的随机数生成器。Random(long
seed)
使用单个long种子创建一个新的随机数生成器。2021/6/279随机数类java.util.RandomnextDouble()
返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的double值。nextFloat()
返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的float值2021/6/2710随机数类java.util.RandomnextInt()
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。nextInt(int
n)
返回一个伪随机数,它是取自此随机数生成器序列的、在0(包括)和指定值(不包括)之间均匀分布的int值。2021/6/2711String类和StringBuffer类字符串是字符的序列,它是组织字符的基本数据结构,从某种程度上来说有些类似于字符的数组。在Java中,字符串被当作对象来处理。程序中需要用到的字符串可以分为两大类,一类是创建之后不会再做修改和变动的字符串常量;另一类是创建之后允许再做更改和变化的字符串变量。对于字符串常量,由于程序中经常需要对它做比较,搜索之类的操作,所以通常把它放在一个具有一定名称的对象之中,由程序对该对象完成上述操作。在Java中,存放字符串常量的对象用String类,对于字符串变量,由于程序中经常需要对它做添加,插入,修改等操作,一般存放在StringBuffer类的对象中。2021/6/2712字符串
——String字符串常量使用双引号括住的一串字符,比如:
"Helloworld!"Java编译器自动为每一个字符串常量生成一个String类的实例,因此可以用字符串常量直接初始化一个String对象,如:
Strings="Helloworld!";2021/6/2713要创建类String的一个对象并进行初始化,需要调用类String的构造方法。类String中提供了下面的一些构造方法:String():无参数的缺省的构造方法用来创建一个空串。
Strings=newString();
String(Stringvalue):利用已经存在的字符串常量创建一个新的String对象,该对象的内容与给出的字符串常量一致。
Strings=newString(“hello”);String(charvalue[]):通过给构造方法传递一个字符数组可以创建一个非空串。
charchars[]={‘a’,‘b’,‘c’};
Strings=newString(chars);
3、字符串
——String:创建2021/6/2714String(char[],intstartIndex,intnumChars):这种方法用来创建一个非空串,并且指明所创建的字符串在字符数组中的起始地址以及所包含的字符个数。charchars[]={'a','b','c','d','e','f'};Strings=newString(chars,2,3);该方法生成的串s为“cde”。(注意数组的下标从0开始)3、字符串
——String:创建2021/6/2715String(bytemybyte[],bytehibyte):因为在Internet上,格式采用八位的ASCII码,所以Java的类String提供了从byte型数组进行初始化的构造方法。其中hibyte指明各字符的高位字节,对于通常所用的ASCII码,必须将高位字节声明为零,而其他的非拉丁文字符则置为非零。
bytemybyte[]={97,98,99}; Strings=newString(mybyte,0);该方法构造的字符串s是“abc”。3、字符串
——String:创建2021/6/2716String(bytemybyte[],bytehibyte,intstartIndex,intnumChars):这种构造方法与String(char[],intstartIndex,intnumChars)类似,只是初始化的数组类型不同。
bytemybyte[]={80,81,82,83,84,85};
Strings=newString(mybyte,0,2,3);该方法构造的字符串s是“RST”。String(StringBufferbuffer):这个构造函数利用一个已经存在的StringBuffer对象为新建的String对象初始化。3、字符串
——String:创建2021/6/2717
1.lengthpublicintlength()
此方法返回字符串的字符个数,如:
Strings="abc"; System.out.println(s.length());
则将显示字符个数为3。3、字符串
——String:基本方法2021/6/27182.charAtpubliccharcharAt(intindex)
该方法返回字符串中index位置上的字符,其中index值的范围是0~length-1。3.getChars
如果要从字符串中提取一个以上的字符,则可以用此方法:publicvoidgetchars(intsrcbegin,intend,charbuf[],intdstbegin)
其中,srcbegin为要提取的第一个字符在源串中的位置,
end为要提取的最后一个字符在源串中的位置,字符数组buf[]存放目的字符串,dstbegin为提取的字符串在目的串中的起始位置。3、字符串
——String:基本方法2021/6/27194.getbytespublicvoidgetbytes(intsrcbegin,intend,bytebyt[],intdstbegin)类似于上一个方法,只是串中的字符均用8位表示,参数及用法同上。5.indexOf和lastIndexOf
为了在给定的字符串中检索特定的字符或子串,类String提供了上面两种方法,并通过方法重写更方便的处理这类问题。这两种方法中,如果查找成功,则返回匹配成功的字符的位置,如果没有查找到,则都返回-1。
intindexOf(intch)intlastIndexOf(intch)
返回字符ch在字符串中出现的第一个和最后一个位置。3、字符串
——String:基本方法2021/6/2720 intindexOf(Stringstr) intlastindexOf(Stringstr)
返回子串str中第一个字符在字符串中出现的始末位置。
intindexOf(intch,intfromIndex)) intlastIndexOf(intch,intfromIndex))
返回字符ch在字符串中位置fromIndex以后出现的始末位置。intindexOf(Stringstr,intfromIndex) intlastIndexOf(Stringstr,intfromIndex)
返回子串str中的第一个字符在字符串中位置fromIndex
以后出现的始末位置。3、字符串
——String:基本方法2021/6/27216.+ 在Java中,运算符“+”可以用来实现字符串的连接,如:
Strings=“Heis”+
age
+“yearsold.”
假设整数型变量age的值为15,那么,s的值为
“Heis15yearsOld”。7.compareTo publicintcompareTo(Stringstr)
该方法按字典次序比较两个字符串的大小,如果源串较小,则返回一个小于0的值,如相等则返回0,否则返回一个大于0的值。3、字符串
——String:基本方法2021/6/27228.regionMatches booleanregionMatches
(inttoffset,Stringother,intooffset,intlen)
booleanregionMatches
(booleanignoreCase,inttoffset,Stringother, intooffset,intlen)上述两个方法都是用来进行模式匹配的,匹配成功则返回true,否则返回false。其中,toffset和ooffset分别指明当前字符串和参数字符串中所要比较的子串的起始索引位置,len指明比较的长度,而ignoreCase指明比较时是否区分大小写。对于第一种方法,比较是区分大小写的。Strings1=“tsinghua”Strings2=“itisTsingHua”;s1.regionMatches(0,s2,6,7);3、字符串
——String:基本方法2021/6/27239.equals和equalsIgnoreCase publicbooleanequals(objectstr) publicbooleanequalsIgnoreCase(objectstr) 判断两个字符串是否相等,则可以用此方法。相等则返回true,不等则返回false,两种方法的区别在于equalsIgnoreCase不区分字母大小写,而equals则须区分。10.其他方法
publicStringconcat(Stringstr);
将当前字符串对象与给定的字符串str连接起来。3、字符串
——String:基本方法2021/6/2724publicStringreplace(charoldChar,charnewChar)将串中出现的特定字符用新的字符代替。publicStringsubstring(intbeginIndex)publicStringsubstring(intbeginIndex,intendIndex)用来得到字符串中指定范围内的子串。publicStringtoLowerCase()把串中的所有字符转换成小写publicStringtoUpperCase()把串中的所有字符转换成大写3、字符串
——String:基本方法2021/6/2725示例1:加密解密算法publicclassStringdemo{publicStringjiami(Stringstr){Stringresult="";intlength=str.length();charc[]=newchar[length];for(inti=0;i<str.length();i++){c[i]=(char)(str.charAt(i)+i);}returnnewString(c);}2021/6/2726示例,密码加密publicStringjiemi(Stringstr){Stringresult="";intlength=str.length();charc[]=newchar[length];for(inti=0;i<str.length();i++){c[i]=(char)(str.charAt(i)-i);}returnnewString(c);}2021/6/2727示例,密码加密publicstaticvoidmain(String[]args){Stringdemos=newStringdemo();Stringstr="1234567890abcdefghijklmnopqrstuvwxyz";System.out.println("加密前"+str);Stringafterjiami=s.jiami("1234567890abcdefghijklmnopqrstuvwxyz");System.out.println("加密后"+afterjiami);Stringafterjiemi=s.jiemi(afterjiami);System.out.println("解密后"+afterjiemi);}}2021/6/2728示例2:字符串分割public
classSplit_test{
public
static
voidmain(String[]args){ Stringstr="2010-06-01-19-56"; String[]str_split=str.split(“-”);//以“-”为标志将字符串拆分
//循环打印字符数组元素
for(inti=0;i<str_split.length;i++){ System.out.println("str_split["+i+"]="+str_split[i]);}}}2021/6/2729
缓冲字符串类(StringBuffer)处理的是长度和内容可变的字符串,使用StringBuffer类可以方便地在缓冲字符串里加入字符、字符字串,或替换字符串中的字符,字符子串构造方法:
StringBuffer()
建立一个空串的缓冲区,长度为16。
StringBuffer(intlength)
建立一个长度为length的空串缓冲区。
StringBuffer(Stringstr)
初始化缓冲区内容为给定的字符串str,并提供另16个字符的空间供再次分配。3、字符串
——StringBuffer:创建2021/6/2730除了方法length(),charAt(),getChars()以外,还有以下几种方法。1.capacitypublicintcapacity()此方法返回字符串缓冲区的长度,即总的可供分配的字符个数。3、字符串
——StringBuffer:基本方法2021/6/2731classdemoOfStringBuffer{
publicvoidmain(Stringbuf[]){
StringBufferstb=newStringBuffer("abc");System.out.println("buffer="+stb);System.out.println("length="+stb.length())
System.out.println("capacity="+stb.capacity());}}从运行结果我们可以看到为附加处理保留了空间。注意:capacity()与length()的区别。C:\>javademoOfStringBufferbuffer=abclength=3capacity=192021/6/27322.appendpublicsynchronizedStringBufferappend
(对象类型对象名)append方法将指定的参数对象转化成字符串,附加在原来的字符串对象之后。3.insertpublicsynchronizedStringBufferinsert
(int插入位置,对象类型对象名)
在指定的位置插入给出的参数对象所转化而得的字符串。3、字符串
——StringBuffer:基本方法2021/6/27334.setChatAt()publicsynchronizedvoidsetCharAt
(intindex,charch)
用来设置指定索引index位置的字符值。5.setLengthpublicsynchronizedvoidsetLength
(intnewLength)
如果希望明确地定义字符缓冲区的长度,则可以用此方法。如果newlength大于现在的长度,串尾将补0,如果小于,那么newlength后的字符将丢失。3、字符串
——StringBuffer:基本方法2021/6/2734用StringBuffer修改加密解密加密算法publicStringjiami(Stringstr){StringBufferresult=newStringBuffer();for(inti=0;i<str.length();i++){//得到字符直接追加到resultresult.append((char)(str.charAt(i)+i));}returnresult.toString();}2021/6/2735与日期和时间有关的类Java语言的Calendar(日历),Date(日期),和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分。所有的开发者都应该能够计算未来的日期,定制日期的显示格式,并将文本数据解析成日期对象。2021/6/2736与日期和时间有关的类创建一个日期对象
让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数。这个时间通常被称为Java虚拟机(JVM)主机环境的系统时间。2021/6/2737与日期和时间有关的类Datedate=newDate();
我们使用了Date构造函数创建一个日期对象,这个构造函数没有接受任何参数,而这个构造函数在内部使用了System.currentTimeMillis()方法来从系统获取日期。
2021/6/2738与日期和时间有关的类日期数据的定制格式
Date类java.text.DateFormat与java.text.SimpleDateFormat子类SimpleDateFormat是DateFormat的子类,DateFormat是抽象类。2021/6/2739与日期和时间有关的类SimpleDateFormat():用默认的模式和默认语言环境的日期格式符号构造SimpleDateFormat。SimpleDateFormat(String
pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。SimpleDateFormat类常用成员方法如下:Stringformat(Date
date):将一个Date格式化为日期/时间字符串。Dateparse(String
source):从给定字符串的开始分析文本,以生成一个日期。2021/6/2740与日期和时间有关的类StringwriterDate=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss").format(newDate());SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日EEEHH:mm:ss");格式“yyyy年MM月dd日EEEHH:mm:ss”其中EEE表示“星期”2021/6/2741与日期和时间有关的类SimpleDateFormat类的作用是设置好某种格式:
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
将字符串转换为日期:
Datedt=sdf.parse("2007-04-30");
将日期转换为字符串:
Stringstr=sdf.format(dt);2021/6/2742实例public
classDateTest{
public
static
voidmain(String[]args){ Datedate=newDate();//根据当前系统事件生成Date对象
SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日EEEHH:mm:ss"); Stringdate_str=date.toString(); Stringdate_format=sdf.format(date);//根据规定的格式格式化Date对象
System.out.println(date_str); System.out.println(date_format);}}2021/6/2743与日期和时间有关的类Calendar日历类是一个抽象类,主要用于日期字段之间相互操作,设置和获取日期数据的特定部分。Calendar类的set()和get()方法可以用来设置和读取日期的特定部分,比如年、月、日、分和秒等。我们可以使用Calendar.getInstance()方法获取Calendar类实例或调用它的子类GregorianCalendar的构造方法。GregorianCalendar采用格林尼治标准时间。2021/6/2744与日期和时间有关的类GregorianCalendar类常用构造方法如下:(1)GregorianCalendar():在具有默认语言环境的默认时区内使用当前时间构造一个默认的GregorianCalendar。(2)GregorianCalendar(int
year,int
month,int
dayOfMonth):在具有默认语言环境的默认时区内构造一个带有给定日期设置的GregorianCalendar。(3)GregorianCalendar(int
year,int
month,int
dayOfMonth,int
hourOfDay,int
minute):为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的GregorianCalendar。(4)GregorianCalendar(int
year,int
month,int
dayOfMonth,int
hourOfDay,int
minute,int
second):为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的GregorianCalendar。2021/6/2745与日期和时间有关的类
GregorianCalendar类常用方法如下:(1)voidadd(int
field,int
amount):根据日历规则,将指定的(有符号的)时间量添加到给定的日历字段中。field指对哪个日期域进行操作,如DATE。(2)DategetTime():
返回一个表示此Calendar时间值(从历元至现在的毫秒偏移量)的Date对象。(3)voidset(int
field,int
value):将给定的日历字段设为给定值。(4)voidgett(int
field,int
value):返回给定的日历字段值。(5)voidsetTime(Date
date):使用给定的Date设置此Calendar的时间。(6)longgetTimeInMillis():
返回此Calendar的时间值,以毫秒为单位。2021/6/2746实例;importjava.util.Calendar;importjava.util.GregorianCalendar;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassCalendardemo{publicstaticvoidmain(String[]args){Calendarcal=newGregorianCalendar();System.out.println("当前格林尼治时间--"+cal.getTime());System.out.print("年:"+cal.get(Calendar.YEAR));System.out.print("月:"+cal.get(Calendar.MONTH));System.out.print("日:"+cal.get(Calendar.DATE));//Calendar类中星期日Calendar.SUNDAT是1
System.out.print("星期:"+(cal.get(Calendar.DAY_OF_WEEK)));System.out.print("小时:"+cal.get(Calendar.HOUR_OF_DAY));System.out.print("分:"+cal.get(Calendar.MINUTE));System.out.println("秒:"+cal.get(Calendar.SECOND));Datedate=cal.getTime();SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日EEEHH:mm:ss");Stringdate_format=sdf.format(date);System.out.println("今天是:"+date_format);cal.set(Calendar.DATE,1);cal.add(Calendar.HOUR,4);System.out.println("修改后的时间为:"+cal.getTime());System.out.println("修改后的时间为:"+sdf.format(cal.getTime()));}}2021/6/2747包装类对于java中的基本数据类型如long,int等等都有一个对应的数据类型类,将它们包装成一个对象,并提供一些操作它们的方法.基本数据类型longintshortbytefloatdoublecharboolen数据类型类LongIntegerShortByteFloatDoubleCharacterBoolen2021/6/2748包装类构造方法和常用方法(以Double为例)1、Doubledou1=newDouble(“123.45”)Doubledou2=newDouble(123.45)2、publicdoubledoubleValue()字符串转换成相应的基本类型数据值publicstaticdoubleparseDouble(String)从包装类对象中取出对应的基本类型数据值publicdoubledoubleValue();publicstaticDoublevalueOf(String)publicStringtoString()2021/6/2749包装类实例数字字符串转换成对应简单数据类型;从数据类型对象中取出对应的简单类型数据;
JDK1.5及以后版本运行基本类型和包装类型进行混合运算。在JDK1.5版本之前,数学运算表达式中操作单元必须是基本类型,并且结果也必须是基本类型。例如以下语句:doubled=123.456*3*3;//合法Doubled=newDouble(“123.456”)*newInteger(3)*3;//不合法,编译出错在JDK1.5及以后版本中上面两个语句均合法。2021/6/2750实例public
classCalculateTest{public
static
voidmain(String[]args){ Doubled=Double.valueOf("123.456"); Integeri=newInteger(3); Doubled2=Double.valueOf("3.3");
intii=6; System.out.println(d*i*d2-ii);}}2021/6/2751集合类框架ArrayListVectorIteratorHashTableHashMap2021/6/2752为什么需要集合框架学生1学生20如何存储每天的新闻信息?如何存储课程的代码与课程信息,能够通过代码方便地获得课程信息?如果写程序时并不知道程序运行时会需要多少对象,或者,需要更复杂的方式存储对象——那么,可以使用Java集合框架,来解决这类问题一维数组代码1……代码N课程1……课程N一一对应新闻1……新闻N每天的新闻总数不确定,显然无法再使用数组保存存储一个班的学生信息,假定一个班容纳20名学员2021/6/2753Java集合框架包含的内容1接口CollectionListMap2具体类ListArrayListVectorMap3算法Java集合框架,为我们提供了一套性能优良、使用方便的接口和类,我们不必再重新发明轮子,只需学会如何使用它们,就可以处理实际应用中出现的问题了Java集合框架位于java.util包中Collections提供了对集合进行排序、遍历等多种算法实现采用键-值对的存储方式,长度可动态改变采用线性列表的存储方式,长度可动态改变SetList采用线性列表的存储方式,长度可动态改变List了解内容HashtableHashMap2021/6/2754List接口和ArrayList类开发一套小型的新闻管理系统,要求如下:可以存储各类新闻标题(包含ID、名称、创建者、创建时间)可以获取新闻标题的总数可以逐条打印每条新闻标题的名称存储方式如何选择?元素个数不确定使用集合类需要遍历元素存储对象如何确定?类型:新闻标题属性:ID、名称、创建者、创建时间2021/6/2755List接口和ArrayList类第一步,确定存储方式1、ArrayList类是List接口的一个具体实现类2、ArrayList
对象实现了可变大小的数组3、随机访问和遍历元素时,它提供更好的性能元素1元素2元素3元素4元素5元素6元素7元素8元素9元素10当元素个数增加为11个元素1元素2元素3元素4元素5元素6元素7元素8元素9元素10元素11创建了一个新的数组,把原数组中元素复制进来根据下标位置访问元素2021/6/2756List接口和ArrayList类第二步:确定存储对象1、创建类型:新闻标题2、包含属性:ID、名称、创建者、创建时间publicclassFirstLevelTitle{privateintid;//IDprivateStringtitleName;//名称privateStringcreater;//创建者privateDatecreateTime;//创建时间publicFirstLevelTitle(intid,StringtitleName,Stringcreater,DatecreateTime){this.id=id;this.titleName=titleName;this.creater=creater;this.createTime=createTime;}publicStringgetTitleName(){ returntitleName;}publicvoidsetTitleName(StringtitleName){ this.titleName=titleName;}}2021/6/2757List接口和ArrayList类5-4第三步:具体实现1、按照顺序依次添加各类新闻标题2、获取新闻标题的总数3、根据位置获取相应新闻标题4、逐条打印每条新闻标题的名称publicclassFirstLevelTitleDB1{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽车","管理员",newDate());FirstLevelTitletest=newFirstLevelTitle(2,"高考","管理员",newDate());ListnewsTitleList=newArrayList();newsTitleList.add(car);newsTitleList.add(test); System.out.println("新闻标题数目为:"+newsTitleList.size()+"条");print(newsTitleList);}publicstaticvoidprint(ListnewsList){for(inti=0;i<newsList.size();i++){FirstLevelTitletitle=(FirstLevelTitle)newsList.get(i);System.out.println(i+1+":"+title.getTitleName());}}}123顺序添加,位置从0开始新闻标题数目为:2条1:汽车2:高考控制台输出4从集合中取出后为Object类型,需要进行强制类型转换2021/6/2758List接口和ArrayList类第三步:具体实现1、在指定的位置添加新闻标题2、判断是否已经存储了某条新闻标题3、删除指定位置处的某一新闻标题publicclassFirstLevelTitleDB2{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽车","网站管理员",newDate());FirstLevelTitletest=newFirstLevelTitle(2,"高考","网站管理员",newDate());FirstLevelTitlehouse=newFirstLevelTitle(3,"房产","网站管理员",newDate());ListnewsTitleList=newArrayList();newsTitleList.add(car);newsTitleList.add(test);newsTitleList.add(2,house);if(newsTitleList.contains(test)){ System.out.println("有高考的新闻");}else{ System.out.println("没有高考的新闻");}newsTitleList.remove(1);System.out.println("新闻标题数目为:"+newsTitleList.size()+"条");}}123在指定的位置添加元素,后续元素依次后移有高考的新闻新闻标题数目为:2条控制台输出2021/6/2759List接口中定义的常用方法,booleanadd(Objecto);,intsize();,Objectget(intindex);,voidadd(intindex,Objecto);插入,booleancontains(Objecto);,booleanremove(Objecto);2021/6/2760小结1创建一个类Cat包含属性name,在构造方法中进行初始化添加一个方法show(),用以打印name属性的值创建一个类CatTest,添加main方法,实现创建一个ArrayList,向其中添加几个Cat对象遍历该集合,并且对每个Cat对象调用show()方法2021/6/2761Collection接口中别的集合2021/6/2762Collection接口中Iterator如何遍历Collection中的每一个元素?不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下:
Iterator
it
=
collection.iterator();
//
获得一个迭代子
while(it.hasNext())
{
//
得到下一个元素,需要做具体的类型转换
Object
obj
=
it.next();
}
2021/6/2763Collection接口中Iteratorpublicvoidoutputinfo(Listlist){ Iteratorit=list.iterator(); while(it.hasNext()){FirstLevelTitleft=(FirstLevelTitle)it.next(); ft.getTitleName()); }}2021/6/2764那Vector和ArrayList有何区别呢?Vector非常类似ArrayList,但是Vector是同步的.大家不必过多的去研究它们的区别用Vector代替ArrayList实现前例2021/6/2765Map接口和HashMap类学生应聘至外企工作,每个学生都会有一个英文名称,对应该学员对象
Jack淮安信息毕业的李明Rose南京信息毕业的刘丽现在希望通过英文名称,获得该学员对象的详细信息,如何实现?存储方式如何选择?元素个数不确定使用集合类通过key(英文名称)获得value(学员对象)存储对象如何确定?类型:学生属性:学校、姓名2021/6/2766Map接口和HashMap类4-2第一步,确定存储方式1、Map接口用于维护“键-值对”的关联性,可以通过键查找值2、HashMap是Map接口的一个具体实现类2021/6/2767Map接口和HashMap类第二步:确定存储对象1、创建类型:Accp学员2、包含属性:中心名称、姓名publicclassAccpStudent{privateStringname;//学生姓名privateStringschool;//学校名称publicAccpStudent(Stringname,Stringschool){=name;this.school=school;}publicStringtoString(){ returnschool+"毕业的"+name;}}重写Object的toString()方法,用于输出调试和描述信息2021/6/2768Map接口和HashMap类第三步:具体实现1、把英文名称与学员对象按照“键-值对”的方式存储在HashMap中2、分别打印键集、值集、以及键-值对集合3、判断是否存在某个键,如果是,则根据键获取相应的值4、根据键、删除某条记录publicclassMapTest{publicstaticvoidmain(String[]args){AccpStudentstudent1=newAccpStudent(“李明”,“淮安信息");AccpStudentstudent2=newAccpStudent(“刘丽”,“南京信息");Mapstudents=newHashMap();students.put("Jack",student1);students.put("Rose",student2);System.out.println("键集:"+students.keySet());System.out.println("值集:"+students.values());System.out.println("键-值对集合:"+students);Stringkey="Jack";if(students.containsKey(key))System.out.println(students.get(key));students.remove(key);System.out.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版苗木种植与深加工一体化销售合同3篇
- 网络技术支持班组准则
- 演出服务质量异常预防计划
- 药品管理法律制度药品刑事责任
- 气体钢瓶配送员聘用合同
- 2025版跨区域公司搬迁合同范本:全面保障员工权益与办公流程3篇
- 保险公司招投标政策
- 环保家居二手房交易合同模板
- 城市广场室内泳池施工合同
- 矿山钻探施工合同
- 智能胶囊内镜导航算法研究
- 人力资源产业园可行性方案
- 《新疆大学版学术期刊目录》(人文社科)
- 2024年初级社会工作者《社会工作综合能力》模拟试卷一
- 重庆市2023-2024学年高一上学期期末联合检测物理试卷(含答案解析)
- 糖尿病性视网膜病变汇报演示课件
- GB/T 43575-2023区块链和分布式记账技术系统测试规范
- 小儿肺炎的病例讨论
- 校园教职工思想动态和现实表现动态评估
- 《气体灭火系统》课件
- 黑龙江省鸡西市2023-2024学年八年级上学期第二次质量监测道德与法治试题
评论
0/150
提交评论