Java实验报告(实验6)

henu大二Java实验作业

实验目的:

1、掌握容器类的层次结构;

2、掌握Collection接口和List接口的常用方法;

3、掌握Iterator接口的使用方式;

4、掌握Set接口和hashCode的使用方式;

5、掌握Map接口的使用方式。

实验内容:

1.

将下列数据:“hello”、123、6.9、“hello”、“”、“Hello”、StringBuffer s=new StringBuffer(“abc”);中的s,添加到一个ArrayList对象中,并输出结果。

•    练习修改元素、获取元素、打印输出。

•    查找元素“hello”。

•    删除指定的元素“hello”。

•     将元素123替换为1000。

源代码:

import java.util.*;
public class S6_1 {public static void main(String [] args){StringBuffer s=new StringBuffer("abc");ArrayList list=new ArrayList();list.add("hello");list.add(123);list.add(6.9);list.add("hello");list.add("");list.add("Hello");list.add(s);for(int i=0;i<list.size();i++){System.out.println(list.get(i));}System.out.println("---");Iterator it=list.iterator();System.out.println("hello的位置为:");for(int i=0;i<list.size();i++){if("hello".equals(list.get(i))){System.out.println(i);}}while(it.hasNext()){Object obj=it.next();if("hello".equals(obj)){it.remove();}}list.set(list.indexOf(123),1000);System.out.println("----");for(int i=0;i<list.size();i++){System.out.println(list.get(i));}}
}

运行效果:

2.

使用ArrayList集合,对其添加10个不同的元素,并使用Iterator遍历该集合。提示:

•    使用add()方法将元素添加到ArrayList集合中。

•    调用集合的iterator()方法获得Iterator对象,并调用Iterator的hasNext()和next()方法,迭代出集合中的所有元素。

•    查找键盘输入的元素。

•    将重复的元素删除。

import java.util.*;
public class S6_2 {public static void main(String [] args){ArrayList list=new ArrayList();list.add("123");list.add("123");list.add("456");list.add("456");list.add("wonendie");list.add("zjc");list.add("zjc");list.add("789");list.add("adgdg");list.add("789");Iterator it=list.iterator();while(it.hasNext()){Object obj=it.next();System.out.println(obj);}Scanner sc=new Scanner(System.in);System.out.println("请输入要查找的数据:");String s=sc.next();for (int i = 0; i < list.size(); i++) {if(s.equals(list.get(i))){System.out.println("位置在:"+i);}}HashSet<String> hs=new HashSet<String>();hs.addAll(list);list.clear();list.addAll(hs);System.out.println("删除重复后:"+list);}
}

运行效果:

3.

去除集合中自定义对象(如Person类,属性包括姓名和年龄)的重复值(对象的成员变量值都相同)。

import java.util.*;public class S6_3 {public static void main(String [] args){HashSet hs=new HashSet();Person p1=new Person("张家城",18);Person p4=new Person("李章曜",20);Person p2=new Person("吴洲佳",19);Person p3=new Person("张家城",18);hs.add(p1);hs.add(p2);hs.add(p3);hs.add(p4);System.out.println(hs);}
}
class Person{public String   name;public int age;public Person(String name,int age){this.age=age;this.name=name;}//重写toString 方法public String toString(){return name+":"+age;}//重写hashCode方法public int hashCode(){return name.hashCode();//返回name属性的散列值}//重写equals方法public boolean equals(Object obj){if(this==obj){return true;}else if(!(obj instanceof Person)){return false;}Person p=(Person) obj;boolean b=this.name.equals(p.name);return b;}}

运行结果;

4.

编写程序将一组学生对象的姓名和成绩存入到一个树集(TreeSet)中,完成以下要求:

•    使得按照成绩自动降序排列,并输出排序的结果。

•    从一个无序数组中,剔除重复元素,并按升序排序。

import java.util.TreeSet;
import java.util.*;
public class S6_5 {public static void main(String [] args){TreeSet ts=new TreeSet(new Comparator() {@Overridepublic int compare(Object o1, Object o2) {Student s1=(Student)o1;Student s2=(Student)o2;if(s1.score.hashCode()>(s2.score.hashCode())){return -1;}else if(s1.score.hashCode()<s2.score.hashCode()){return 1;}else {return s1.name.compareTo(s2.name);//当score相等时,比较name;}}});ts.add(new Student("98","zhang"));ts.add(new Student("60","li"));ts.add(new Student("60","ab"));System.out.println(ts);TreeSet st=new TreeSet();st.add(123);st.add(12);st.add(12);st.add(34);st.add(356);System.out.println(st);}
}
class Student {public  String score;public  String name;public Student(String score,String name){this.score=score;this.name=name;}public String toString() {return score + ":" + name;}public int hashCode(){return score.hashCode();}
}

运行结果:

5.

编写一个程序,读取个数不定的整数,然后查找其中出现频率最高的数字。当输入为0时,表示结束输入。如:

如果输入的数据是2   3   40   3   54   -3   3   3   2   0,那么数字3的出现频率是最高的。请一次输入一个数字。

如果出现频率最高的数字不是一个而是多个,则应该将它们全部输出。例如:在线性表9  30  3  9  3  2  4中,3和9都出现了两次,3和9都应该输出。

提示:可以定义两个集合,一个存放所有输入的数据,另一个存放出现频率最高的数字。

import java.util.*;
public class S6_6
{public static void main(String[] args){Scanner reader=new Scanner(System.in);HashMap<Integer,Integer> tm=new HashMap<Integer,Integer>();while (true){int a=reader.nextInt();if (a==0){break;}if (tm.containsKey(a)){int value1=tm.get(a);value1++;tm.put(a,value1);}else{tm.put(a,1);}}Collection<Integer> c = tm.values();Object[] obj = c.toArray();Arrays.sort(obj);//升序排列Set keySet=tm.keySet();Iterator it2=keySet.iterator();while (it2.hasNext()){Object key=it2.next();Object value=tm.get(key);if (obj[tm.size()-1]==value){System.out.println("频率最高的数据为:");System.out.println(key);}//System.out.println(key+":"+value);}}
}

运行结果:

数据:1 1 1 2 2 2 3 3 4 5

6.

统计字符串中每个单词出现的次数,使用HashMap来实现。例如:“Today, We have a class of java, as we kown, java is an object oriented  programming language, and java is fun! wish you enjoy it!”,统计结果存储成以下形式:

a-->1

an-->1

and-->1

as-->1……

is-->2

提示:使用String.split(("[ \n\t\r.,;:!?()]")方法进行分词,空格,标点符号等。

import java.util.*;
public class S6_8 {public static void main(String[] args) {String str = "Today, We have a class of java, as we kown, java is an object oriented  programming language, and java is fun! wish you enjoy it";HashMap<String, Integer> hm = new HashMap<>();    //定义一个双列集合String[] strs = str.split("[ \\n\\t\\r.,;:!?()]");                                               //分割成若干字符串for (int i = 0; i < strs.length; i++) {                                  //判断每个字符串,是存在于集合里if (!hm.containsKey(strs[i])) {hm.put(strs[i], 1);                    //如果不存在,则存进去} else {Integer counts = hm.get(strs[i]);                        //如果存在 ,先找到 此key对应的 value值hm.put(strs[i], counts + 1);                   //覆盖前者的的key值,并且比前者多加一次}}Iterator<String> it=hm.keySet().iterator();                    //获取HashMap所有的key集合并遍历while(it.hasNext()) {String keyName=it.next();System.out.println(keyName+"->"+hm.get(keyName));}}
}

运行结果:

Java实验报告(6)相关推荐

  1. java浏览器实验报告_关于java实验报告模板

    关于java实验报告模板 1.掌握Java Applet的程序结构和开发过程. 2.学会编写Applet对应的HTML文件,掌握从HTML文件向Applet传递参数的方法. 3. 掌握文本框对象的使用 ...

  2. java实验报告 05 类与_java程序设计类与方法-java实验报告

    java程序设计类与方法-java实验报告 java程序设计类与方法-java实验报告 1. 实验内容或题目 (1) 编写Java应用程序,实现以下功能:当应用程序运行后,根据屏幕提示进行交互式输入并 ...

  3. java 实验报告模板_Java实验报告模板.doc.doc

    Java实验报告模板.doc 实 验 报 告 课程名称Java面向对象程序设计实验名称检查危险品姓名吴超益学号201424134114专业年级14物联网一.实验目的: 本实验的目的是让学生掌握try- ...

  4. Java实验实现一个circle类,java实验报告-类的定义.doc

    java实验报告-类的定义 南京理工大学泰州科技学院 实验报告书 课程名称: <JAVA面向对象程序设计> 实验题目: 实验三 类的定义 班 级: 09计算机(2) 学 号: 090903 ...

  5. java数组使用实验报告_JAVA数组与类的定义-java实验报告

    JAVA数组与类的定义-java实验报告 JAVA数组与类的定义-java实验报告 .实验目的与要求 1. 熟悉Java类.对象和方法的一般操作练习等. 2. 熟悉数组等的定义和使用. 二.实验内容及 ...

  6. java实验册_Java实验报告册Java实验报告册.doc

    Java实验报告册Java实验报告册 <面向对象程序设计> 实验报告与习题册2013 / 2014 学年 第1学期系 别 计算机科学与技术系专 业 班 级 姓 名 指导教师 目 录 项 目 ...

  7. java泛型实验报告,java实验报告异常集合类和泛型

    java实验报告异常集合类和泛型 成绩: 面向对象原理与 Java 实践课程实验报告实验 3:异常.集合类和泛型姓 名 _ ___ 班 级 _ ___ 学 号 _ ___ 实验地点 _ ___ 实验时 ...

  8. java实验二答案天津商业大学,天津商业大学java实验报告

    天津商业大学java实验报告答案及运行结果 this.start =start; } public Point getEnd(){ return end; } public void setEnd(P ...

  9. java人学生大学生类的继承,java实验报告7.doc

    java实验报告7.doc 实 验 报 告( 2014 / 2015学年 第2学期)课程名称JAVA程序设计实验名称 类的继承实验时间2015年4月30日指导单位计算机学院/软件学院软件工程系指导教师 ...

  10. 武汉科技大学java题库答案_武汉科技大学 java实验报告 实验二

    <武汉科技大学 java实验报告 实验二>由会员分享,可在线阅读,更多相关<武汉科技大学 java实验报告 实验二(9页珍藏版)>请在金锄头文库上搜索. 1.注:"实 ...

最新文章

  1. Hinton神经网络公开课编程练习1 The perceptron learning algorithm
  2. 关于Struts2的jsp页面的注释
  3. 启动mongodb服务器时发生系统错误5,CentOS 7系统下SELinux阻止MongoDB启动的问题详解...
  4. win10计算机本地无法连接,win10无法连接到这个网络怎么办_win10无法连接到这个网络如何解决...
  5. java 范围搜寻要怎么弄_搜索范围
  6. 删除win10开始菜单中程序的目录
  7. 配置金蝶14.3APi
  8. Meta率先发布虚拟世界Horizon Worlds
  9. 金融数据分析与挖掘实战练习-1.9
  10. MFC socket编程
  11. C#中时间格式的转换
  12. java读取html文件内容的代码_【代码审计】xyhcms3.5后台任意文件读取
  13. 初学QML之QML和C++混合方法
  14. 推荐一本写给IT项目经理的好书
  15. Linux内核version magic不一致问题
  16. 手动验证 TLS 证书
  17. matlab条件统计个数,matlab计算条件概率
  18. JL-03-Q9 自动气象站 常见气象9参数 空气温湿度 风速风向 雨量光照 大气压力 土壤温湿度
  19. 联发科技嵌入式_【MTK联发科技工资】嵌入式软件工程师待遇-看准网
  20. java运行applet的命令_Java工具JDK中用来运行Applet程序的命令是()

热门文章

  1. 魔兽世界无限从服务器断开连接,wow无法连接服务器(魔兽世界7.0已从服务器断开51900319解决方法介绍)...
  2. 关于天龙八部3的感想
  3. Centos7常用指令
  4. Unity 工具类 之 Excel 转换为 json、csv、xml、lua格式
  5. 七牛云配置二级域名,从而避免七牛云30天自动更改域名的问题
  6. influx配置文件详解
  7. 微信直播相对一般直播平台怎么样?有哪些优势?
  8. 西安电子科技大学计算机834,西安电子科技大学834数据结构2021年硕士研究生招生考试自命题科目考试大纲...
  9. 马云私有化回购价争议 或将套现2亿港币
  10. verdaccio每次下载有时候不会加载taz压缩包原因解决