Java集合源代码.docx
- 文档编号:7664812
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:28
- 大小:21.71KB
Java集合源代码.docx
《Java集合源代码.docx》由会员分享,可在线阅读,更多相关《Java集合源代码.docx(28页珍藏版)》请在冰豆网上搜索。
Java集合源代码
Java集合源代码
importjava.util.HashSet;
importjava.util.Set;
/**
*学生类的信息
*@authorTCK
*
*/
publicclassStudent{
publicStringid;
publicStringname;
publicSet
publicStudent(Stringid,Stringname){
super();
this.id=id;
this.name=name;
this.courses=newHashSet
}
@Override
publicinthashCode(){
finalintprime=31;
intresult=1;
result=prime*result+((name==null)?
0:
name.hashCode());
returnresult;
}
@Override
publicbooleanequals(Objectobj){
if(this==obj)
returntrue;
if(obj==null)
returnfalse;
if(!
(objinstanceofStudent))
returnfalse;
Studentother=(Student)obj;
if(name==null){
if(other.name!
=null)
returnfalse;
}elseif(!
name.equals(other.name))
returnfalse;
returntrue;
}
}
/**
*课程类的信息
*@authorTCK
*
*/
publicclassCourse{
publicStringid;
publicStringname;
publicCourse(Stringid,Stringname){
this.id=id;
this.name=name;
}
publicCourse(){
}
@Override
publicinthashCode(){
finalintprime=31;
intresult=1;
result=prime*result+((name==null)?
0:
name.hashCode());
returnresult;
}
@Override
publicbooleanequals(Objectobj){
if(this==obj)
returntrue;
if(obj==null)
returnfalse;
if(!
(objinstanceofCourse))
returnfalse;
Courseother=(Course)obj;
if(name==null){
if(other.name!
=null)
returnfalse;
}elseif(!
name.equals(other.name))
returnfalse;
returntrue;
}
//publicbooleanequals(Objectobj){
//if(this==obj)
//returntrue;
//if(obj==null)
//returnfalse;
//if(!
(objinstanceofCourse))
//returnfalse;
//Coursecourse=(Course)obj;
//if(this.name==null){
//if(course.name==null)
//returntrue;
//else
//returnfalse;
//}
//else{
//if(this.name.equals(course.name))
//returntrue;
//elsereturnfalse;
//}
//}
}
//publicbooleanequals(Objectobj){
//
//if(obj==null)
//returnfalse;
//
//else{
////inshtancof双目运算符,判断左边对象是否属于右边类
//if(objinstanceofCourse){
////把父类对象转换为Cat类
//Coursec=(Course)obj;
//if(c.id==this.id&&c.name==this.name)
//returntrue;
//}
//returnfalse;
//}
//}
//publicbooleanequals(Objectobj){
//if(this==obj)
//returntrue;
//if(obj==null)
//returnfalse;
//if(!
(objinstanceofCourse))
//returnfalse;
//Courseother=(Course)obj;
//if(name==null){
//if(other.name!
=null)
//returnfalse;
//}elseif(!
name.equals(other.name))
//returnfalse;
//returntrue;
//}
//publicbooleanequals(Objectobj){
//
//if(obj==null)
//returnfalse;
//
//else{
////inshtancof双目运算符,判断左边对象是否属于右边类
//if(objinstanceofCourse){
////把父类对象转换为Cat类
//Coursec=(Course)obj;
//if(c.id==this.id&&c.name==this.name)
//returntrue;
//}
//returnfalse;
//}
//}
publicclassChiledCourseextendsCourse{
}
importjava.util.ArrayList;
importjava.util.Collection;
importjava.util.Collections;
importjava.util.List;
importjava.util.Random;
/**
*1.通过Collections.sort()方法,对Integer泛型的List进行排序;
*2.对String泛型的List进行排序;
*3.对其他类型泛型的List进行排序,以Student为例
*/
publicclassCollectionsTest{
/**
*通过Collections.sort()方法,对Integer泛型的List进行排序;
*创建一个Integer泛型的;ist,插入十个100以内不重复的随机整数,
*调用Collections.sort()方法对其进行排序
*/
publicvoidtestSort1(){
List
//插入十个100以内不重复的随机整数
Randomrandom=newRandom();
Integerk;
for(inti=0;i<10;i++){
do{
k=random.nextInt(100);
}
while(integerList.contains(k));
integerList.add(k);
System.out.println("成功添加整数:
"+k);
}
System.out.println("======排序前======");
for(Integerinteger:
integerList){
System.out.println("元素"+integer);
}
Collections.sort(integerList);
System.out.println("======排序后======");
for(Integerinteger:
integerList){
System.out.println("元素"+integer);
}
}
/**
*对String泛型的List进行排序
*创建String泛型的list,添加三个乱序的String元素
*调用sort()方法,再次输出排序后的顺序
*/
publicvoidtestSort2(){
List
stringList.add("jack");
stringList.add("paul");
stringList.add("tck");
System.out.println("======排序前======");
for(Stringstring:
stringList){
System.out.println("元素"+string);
}
Collections.sort(stringList);
System.out.println("======排序后======");
for(Stringstring:
stringList){
System.out.println("元素"+string);
}
}
/**
*产生随机字符串方法
*/
publicstaticStringgetRandomString(){
Stringbase="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
Randomrandom=newRandom();
StringBuffersb=newStringBuffer();
for(inti=0;i<10;i++){
intnum=random.nextInt(base.length());
sb.append(base.charAt(num));
}
returnsb.toString();
}
/**
*对随机字符串进行排序
*/
publicvoidtestSort3(){
List
for(inti=0;i<10;i++){
stringList.add(getRandomString());
}
System.out.println("======排序前======");
for(Stringstring:
stringList){
System.out.println("元素:
"+string);
}
Collections.sort(stringList);
System.out.println("======排序后======");
for(Stringstring:
stringList){
System.out.println("元素:
"+string);
}
}
publicstaticvoidmain(String[]args){
CollectionsTestct=newCollectionsTest();
//ct.testSort1();
//ct.testSort2();
//System.out.println(getRandomString());
ct.testSort3();
}
}
importjava.util.ArrayList;
importjava.util.Arrays;
importjava.util.Iterator;
importjava.util.List;
/**
*备选课程类
*@authorTCK
*
*/
publicclassListTest{
//用于存放备选课程的list
publicListcoursesToSelect;
publicListTest(){
this.coursesToSelect=newArrayList();
}
/*
*用于往coursesToSelect中添加备选课程
*/
publicvoidtestAdd(){
//创建一个课程对象,并通过调用add方法,添加到备选课程中
Coursecr1=newCourse("1","数据结构");
coursesToSelect.add(cr1);
Coursetemp=(Course)coursesToSelect.get(0);
System.out.println("添加了课程:
"+temp.id+"."+temp.name);
Coursecr2=newCourse("2","C语言");
//coursesToSelect.add(cr2);
coursesToSelect.add(0,cr2);
Coursetemp2=(Course)coursesToSelect.get(0);
System.out.println("添加了课程:
"+temp2.id+"."+temp2.name);
//添加相同的课程
Coursecr0=newCourse("1","数据结构");
coursesToSelect.add(cr0);
Coursetemp0=(Course)coursesToSelect.get
(2);
System.out.println("添加了课程:
"+temp0.id+"."+temp0.name);
//会抛出数组越界的异常
//Coursecr3=newCourse("4","test");
//coursesToSelect.add(4,cr3);
//addAll方法,需要把参数转化为List类型
Course[]cr4={newCourse("3","离散数学"),newCourse("4","汇编语音")};
coursesToSelect.addAll(Arrays.asList(cr4));
Coursetemp3=(Course)coursesToSelect.get(3);
Coursetemp4=(Course)coursesToSelect.get(4);
System.out.println("添加了两门课程:
"+temp3.id+"."+temp3.name+temp4.id+"."+temp4.name);
Course[]cr5={newCourse("5","高等数学"),newCourse("6","大学英语")};
coursesToSelect.addAll(2,Arrays.asList(cr5));
Coursetemp5=(Course)coursesToSelect.get
(2);
Coursetemp6=(Course)coursesToSelect.get(3);
System.out.println("添加了两门课程:
"+temp5.id+"."+temp5.name+temp6.id+"."+temp6.name);
}
/*
*一般方法遍历List中的数据
*/
publicvoidtestGet(){
System.out.println("待选课程如下所示");
intsize=coursesToSelect.size();
for(inti=0;i Coursecr=(Course)coursesToSelect.get(i); System.out.println("课程是: "+cr.id+"."+cr.name); } } /* *通过迭代器获取数据 */ publicvoidtestIterator(){ //通过集合的iterator方法,来获取当前实例的迭代器 System.out.println("待选课程如下所示(通过迭代器获得)"); Iteratorit=coursesToSelect.iterator(); while(it.hasNext()){ Coursecr=(Course)it.next(); System.out.println("课程是: "+cr.id+"."+cr.name); } } /* *通过poreach方法 */ publicvoidtestForEach(){ System.out.println("待选课程如下所示(通过ForEach获得)"); for(Objectobj: coursesToSelect){ Coursecr=(Course)obj; System.out.println("课程是: "+cr.id+"."+cr.name); } } /* *修改List中的元素 */ publicvoidtestModify(){ Coursecr=newCourse("7","毛概"); coursesToSelect.set(4,cr); } /* *删除list中的元素 */ publicvoidtestRemove(){ //Coursecr=(Course)coursesToSelect.get(4); //System.out.println("我是课程: "+cr.id+'.'+cr.name+",我即将被删除"); //coursesToSelect.remove(cr); System.out.println("即将删除4位置上的课程"); Course[]course={(Course)coursesToSelect.get(3),(Course)coursesToSelect.get(4)}; coursesToSelect.removeAll(Arrays.asList(course)); //coursesToSelect.remove(4); System.out.println("成功删除课程"); testForEach(); } publicstaticvoidmain(String[]args){ ListTestlt=newListTest(); lt.testAdd(); System.out.println("=============="); lt.testGet(); System.out.println("=============="); lt.testIterator(); System.out.println("=============="); lt.testForEach(); System.out.println("=============="); System.out.println("修改后的课程"); lt.testModify(); lt.testGet(); System.out.println("=============="); lt.testRemove(); } } importjava.io.InputStream; importjava.util.HashMap; importjava.util.Map; importjava.util.Map.Entry; importjava.util.Scanner; importjava.util.Set; publicclassMapTest{ /* *用来承装学生类型对象 */ publicMap /* *在构造器中初始化students属性 */ publicMapTest(){ super(); //需用Map的派生HashMap来实例化 this.students=newHashMap } /* *测试添加: 输入学生id,判断是否被占用 *若未被占用,则输入姓名,创建新学生对象,并且添加到students中 */ publicvoidtestPut(){ //创建Scanner对象,用来回去输入的学生id和姓名 Scannerconsole=newScanner(System.in); inti=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 集合 源代码