Java程序设计语言集合类与泛型Word格式.docx

上传人:b****7 文档编号:22396606 上传时间:2023-02-03 格式:DOCX 页数:20 大小:40.13KB
下载 相关 举报
Java程序设计语言集合类与泛型Word格式.docx_第1页
第1页 / 共20页
Java程序设计语言集合类与泛型Word格式.docx_第2页
第2页 / 共20页
Java程序设计语言集合类与泛型Word格式.docx_第3页
第3页 / 共20页
Java程序设计语言集合类与泛型Word格式.docx_第4页
第4页 / 共20页
Java程序设计语言集合类与泛型Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

Java程序设计语言集合类与泛型Word格式.docx

《Java程序设计语言集合类与泛型Word格式.docx》由会员分享,可在线阅读,更多相关《Java程序设计语言集合类与泛型Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

Java程序设计语言集合类与泛型Word格式.docx

创建或初始化String对象的方法如下:

(12)String类的主要成员方法列于下表:

方法

描述

 

(13)Array是位于包中的标准类,其中包含了多个静态成员方法,通过它们可以完成数组的各种操作。

Array的常用静态成员方法列于下表:

功能描述

2、名词:

(1)简单类型:

(2)复合类型型:

(3)数组:

(4)一维数组:

(5)数组的初始化:

(6)数组长度:

(7)空数组:

(8)字符串:

二、边学边练

第1部分:

数组

〖任务1〗:

完成教材【例3-1】的程序,分析运行结果,阅读教材相关内容。

〖任务2〗:

完成教材【例3-2】的程序,分析运行结果,阅读教材相关内容。

〖任务3〗:

完成教材【例3-3】的程序,分析运行结果,阅读教材相关内容。

第2部分:

字符串

〖任务4〗:

完成教材【例3-4】的程序,分析运行结果,阅读教材相关内容。

第3部分:

Array

〖任务5〗:

完成教材【例3-5】的程序,分析运行结果,阅读教材相关内容。

三、精讲精记

一、数组

1、数组的概念

数组是一个最常用的复合数据结构,一个数组中可以存放多个同类型的数据。

数组分为一维数组,二维数组和多维数组。

Java语言中的数组是引用类型,定义一个数组变量,实际上是定义一个数组的引用。

Java语言中的二维数组的各行的元素数可以不同。

2、一维数组

(1)定义数组变量:

数组元素类型[]变量;

数组元素类型变量[];

(2)数组的创建:

new数组元素类型[元素个数];

(3)数组的初始化。

数组元素类型[]变量={元素值列表};

3、二维数组

数组元素类型[][]变量;

数组元素类型变量[][];

new数组元素类型[数组的行数][数组的列数];

new数组元素类型[数组的行数][];

数组元素类型[]变量=

{{第0行元素值列表},{第1行元素值列表},……,{第n-1行元素值列表}};

3、多维数组

基本思路:

数组的每个元素都可以是一个数组。

二、字符串

1、字符串的概念

字符串一个字符串序列,字符串中的字符个数称为字符串的长度。

Java中的字符串是类(java.lang包中),分为两种字符串:

不可变字符串String,线程安全可变字符串StringBuffer,线程不安全可变字符串StringBuilder。

字符串变量是字符串的引用。

2、String对象

(1)字符串常量:

用双引号引起来的字符串序列。

如:

"

good"

(2)字符串变量的定义:

String变量;

(3)创字符串对象:

newString(字符串常量);

(4)给字符串变量赋值:

变量=newString(字符串常量);

变量=字符串常量;

3、String类提供的方法

intlengh()

返回字串常长度

charcharAt(intindex)

返回字符串中指定位置的字符

booleanequals(ObjectothObject)

判断当前字符串与otherObject是否相等。

intcopareTo(StringothString)

当前字符串与otherString进行比较,如大于则返回1,小于则返回-1,相等返回0。

intindex(charch)

返回字符ch在字符串中的位置

intindexOf(Stringstr)

返回字符串str在字符串中的位置

Stringsubstring(intbegin)

Stringsubstring(intbegin,intend)

返回从begin开始到字符串结束的子字符串

返回从begin开始到end结束的子字符串

Stringconcat(Stringstr)

返回当前字符串与字符串str连接的字符串

Stringreplace(charoldChar,charnewChar)

将当前字符串中的oldChar替换为newChar返回

StringtoLowerCase()

将当前字符串中字母转化为小写字符后返回

StringtoUpperCase()

将当前字符串中字母转化为大写字符后返回

StringvalueOf(Objectobj)

StringvalueOf(booleanb)

StringvalueOf(charc)

StringvalueOf(inti)

StringvalueOf(longl)

StringvalueOf(floatf)

StringvalueOf(doubled)

把各种类型的值转换为字符串

三、Arrays类

Arrays类是JavaAPI中提供的标准类,在java.util包中。

Arrays类中提供了多个静态方法,可直接实现数组的排序、搜索等数组的操作。

1、数组的排序

voidArrays.sort(elementType[]a);

2、数组的搜索(二分法)

intArrays.binarySearch(elementType[]a,elementTypev)

3、数组的复制

elementType[]Arrays.copyOf(elementType[]original,intnewLength)

4、数组的填充

voidArrays.fill(elementType[]original,elementTypev)

5、数组的比较

booleanArrays.equals(elementType[]a,elementType[]b)

四、完善调试

1、任务一:

设计一个程序,从键盘上输入n个整数,计算它们的最大值、最小值及平均值。

再计算大于平均值的数的个数和小于平均值的数的个数。

import;

publicclassMyNumber{

main(){

Scannerin=;

System.out.print("

请输入整数的个数:

);

intn=;

int[]data=;

//声明、创建存放n个整数的数组

intmax=0,min=0;

intsum=0,aver=0;

intlarge=0,smaller=0;

for(;

;

){

System.out.print("

\n请输入第"

++"

个整数:

;

if(i==0){

;

}else{

if(data[i]>

max){

;

}

if(data[i]<

min){

}

sum+=;

}

aver=;

if(data[i]>

aver){

if(data[i]<

}

\n输入的"

+n+"

for(inti=0;

i<

n;

i++){

if(i!

=n-1){

System.out.print(+"

、"

);

System.out.println();

System.out.printf("

最大数为:

%d,最小数为:

%d,平均数为:

%d\n"

max,min,aver);

大于平均数的数的个数为:

%d,小于平均数的数的个数为:

large,smaller);

}

}

2、任务二:

设计一个Java程序,从键盘上输入一句英语。

统计其中单词的个数和每个字母出现的频率。

publicclassSentence{

publicstaticvoid(String[]args){

=newScanner(System.in);

请输入一句英语:

Stringsentence=;

intwordNumber=0;

intletterNumber=0;

int[]letterFrequency=newint[26];

String[]words=sentence.split("

[^a-zA-Z]"

wordNumber=words.length;

for(intj=0;

j<

j++){

letterNumber++;

charletter=words[i].;

letter=Character.toLowerCase(letter);

intindex=(int)letter-97;

letterFrequency[]++;

System.out.println("

各字母出现的频率:

System.out.printf("

%c:

%f\n"

,);

3、任务三:

设计一个Java程序,从键盘上输入一个n维方阵,输出这个方阵。

对这个方阵进行转置操作,输出转置操作后的结果。

importjava.util.Scanner;

publicclassMatrix{

publicstaticvoidmain(String[]args){

Scannerin=newScanner(System.in);

请输入方阵的维数:

intn=in.nextInt();

int[][]matrix=newint[n][n];

System.out.print("

+(i+1)+"

行第"

+(j+1)+"

列:

matrix[i][j]=in.nextInt();

System.out.println("

\n输入的原方阵:

for(inti=0;

System.out.printf("

%3d"

matrix[i][j]);

System.out.println();

i;

inttemp=matrix[i][j];

matrix[i][j]=matrix[j][i];

matrix[j][i]=temp;

}

\n转置操作后的方阵:

五、项目实战

写一个学生成绩管理的简易程序,要求如下:

1、程序提供如下功能菜单:

2、如果选择菜单“1”,则先提示输入学生人数,再逐一输入每个学生的姓名、语文成绩、数学成绩、英语成绩。

成绩输入完毕后,呈现功能菜单。

3、如果选择菜单“2”,则逐一输出每个学生的姓名、语文成绩、数学成绩、英语成绩、总成绩、平均成绩。

4、如果选择菜单“0”,程序输出:

结束程序运行。

5、建议用一个一维字符串数组存放全体学生的姓名,用一个二维float数组存放各同学的语文成绩、数学成绩、英语成绩,总成绩和平均成绩计算获取。

程序的源代码如下:

六、课后练习

一、选择题

1、String、StingBuffer和StringBuilder都是______类,都不能被继承。

A、static 

B、abstract、C、final 

D、private 

2、下列程序的功能是统计字符串中"

array"

的个数,在程序的空白处应填入的正确选项是

public 

class 

FindKeyWords{ 

static 

void 

main(sring[] 

args){ 

sting 

text= 

An 

array 

is 

data 

structur 

that 

stores 

collection 

of"

values 

of 

the 

same 

type 

You 

access 

each 

individual 

value"

through 

an 

integer 

index 

For 

example,if 

inergers, 

then 

a[i] 

ith 

in 

array."

;

int 

arrayCount 

=0;

-1;

Sting 

arrarStr 

="

text.indexof(arrayStr);

while(index 

0) 

++arrayCount;

+= 

arrayStr.length();

text.indexof(arrayStr,index);

System.out.println(“the 

text 

contains” 

“arrays”);

A、<

B、= 

C、<

D、>

=

3、给出下列代码,则数组初始化中哪项是不正确的?

Byte[] 

array1,array2[];

byte 

array3[][];

byte[][] 

array4;

A、array2 

array1 

B、array2=array3 

C、array2=array4D、array3=array4 

4、顺序执行下列程序语句后,则b的值是

Stringa="

Hello"

Stringb=a.substring(0,2);

A、HelloB、helloC、HelD、null

5、执行完以下代码int[]x=newint[10];

后,以下哪项说明是正确的

A、x[9]为0B、x[9]未定义C、x[10]为0D、x[0]为空

6、对数组的定义及初始化不正确的方法是:

A、intarray[];

B、intarray[8];

C、int[]array=newint[8];

D、intarray[]=newint[8];

7、关于length()这个方法的表述正确的是哪个?

A、数组有length()这个方法,String也有length()这个方法。

B、数组有length()有这个方法,String没有length()这个方法。

C、数组没有length()这个方法,String有length()这个方法。

D、数组没有length()这个方法,String也没有length()这个方法。

8、运行下面程序段的结果是()。

publicclassMyMain{

publicstaticvoidmain(Stringargs){

HelloJava"

}

A、正常输出HelloJavaB、编译时出错

C、运行时出错D、以上答案都不对

9、编译并运行下述程序段的结果是()。

publicclassTest{

publicstaticvoidmain(Stringargv[]){

int[]count=newint[4];

System.out.println(count[4]);

A、编译时错误B、运行时错误C、输出0D、输出null

10、下面哪个语句(初始化数组)是不正确的()。

A、 

x[] 

{1,2,3};

B、 

x[3] 

C、 

int[] 

D、 

new 

int[]{1,2,3};

11、运行下面程序段的结果是()。

int[][]data={{1,2,3,4,5},{11,22,33,44,55},{111,222,333,444,555}};

data.length;

if(i%2==0){

System.out.println(data[i][4]+"

"

A、5555B、555D、55

二、填空题

1、设有数组定义:

inta[][]={11,22,33,44,55,66,77,88,99};

则执行下列几个语句后的输出结果是【1】。

for(inti=0i<

a.lengthi++)

if(a[i]%3==0)System.out.println(a[i]+"

2、下面程序的运行结果是【2】。

importjava.io.*

publicclassABC{

publicstaticvoidmain(String[]args){

i<

=a.length/2;

i++)

System.out.print(a[i]+a[a.length-i-1]+"

System.out.println();

3、请完成下列程序,实现随机抽取数据元素的功能。

publicclassChouti{

String[]timu={"

天文"

"

地理"

历史"

文学"

红楼"

三国"

};

intindex=(int)(timu.leng*Math.random());

System.out.print("

你抽的题目领域是"

+【3】[index]+"

4、有字符串s1,则其长度为【4】。

5、有数组array,则其长度为【5】。

6、有如下代码:

Strings1,s2;

s1="

abcd"

s2="

则s1.equals(s2)的值为【6】。

7、有如下代码:

s2=s1;

则s1.equals(s2)的值为【7】。

8、有如下代码:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1