IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Java实验报告(6) -> 正文阅读

[系统运维]Java实验报告(6)

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() {
            @Override
            public 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));

            }
        }
}

运行结果:

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 18:06:28  更:2021-12-01 18:07:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:22:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码