
java practice
一些有意思的程序题
ahyo
这个作者很懒,什么都没留下…
展开
-
算法题——在英文段落中查找特定的英文单词
主要利用字符串的输入 .split分割 装入字符串数组 一一比对即可但是个别测试用例 行不通…import java.util.Scanner;public class algorithm { public static void main(String[] args) { Scanner s=new Scanner(System.in); int j=0,n=0; String st=s.nextLine(); String原创 2022-01-27 20:20:56 · 636 阅读 · 0 评论 -
算法题——单词字母出现次数判断
简单分享一下思路,因为代码被我给弄丢了…用Java来做:单词均给定小写,利用字符数组来初始化,str.charAt()来挨个判定相等则在数字数组中累加,注意数字数组和字符数组脚标一致 主要是用来保存每个字母出现次数,之后再选出最大值和最小值即可相减 判断是否为素数都是熟悉的算法...原创 2022-01-26 18:34:49 · 371 阅读 · 0 评论 -
关于我用Java答洛谷看似很简单的编程题
import java.util.Scanner;public class algorithm { public static void main(String[] args) { algorithm a=new algorithm(); Scanner s=new Scanner(System.in); int q=s.nextInt(); while(q!=0) { switch (q) {原创 2022-01-15 23:34:15 · 408 阅读 · 0 评论 -
多线程图形界面聊天
把收发线程独立出去——单独写成一个类 ,只创立server一个图形界面 用于个体的可视化操作 配合swing可以极大模仿聊天个人界面sendThread:import java.io.DataOutputStream;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;import java.util.Scanner;public class sendThread extends Thre原创 2021-12-28 15:15:05 · 413 阅读 · 0 评论 -
模仿英雄选择界面 setvisible的作用不仅仅是JFrame调用
两个面板一个放按钮且其中每个按钮都配合事件监听——点击就切换图片另一面板 放图片三个容器存放面板和标签(用于显示图片)还有按钮import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.ArrayList;import java.util.Scanner;public class HelloSwing { public static void main(String[] args) {原创 2021-12-17 18:06:19 · 251 阅读 · 0 评论 -
关于GUI的两道练习题及其注意事项
1、设计模态框 及其 控制大小变化(当按钮解锁大小即可改变大小 点击之后变为锁定大小)采用的是按钮事件监听嵌套——一个事件嵌套一个代码示例: JFrame jf=new JFrame("example"); JButton jb1=new JButton("打开一个模态窗口"); jf.setLayout(null); jb1.setLayout(null); jf.setBounds(200,200,300,300); jb1.setBounds(20,20,200,20原创 2021-12-15 20:22:38 · 266 阅读 · 0 评论 -
java practice——利用多线程同时在文件夹中查找多个字符串并输出其路径
细节:今天发现的细节是 你在写一个方法时对象去调用它的时候 该方法里只需要写属性的操作 而不用 对象.属性 这种写法去操作 因为该对象调用时 默认其方法里的属性是该对象的。public boolean Isrunover( ) { return speed<patience?true:false; }而不是这种:public boolean Isrunover(players o1) { return o1.speed<o1.patience?tr原创 2021-11-18 23:07:24 · 594 阅读 · 0 评论 -
Java learn 自定义的MyHashMap
主要实现HashMap 的两个方法——put(); 和 get();但是 当我新建一个类进行测试的时候 告知我java.lang.StackOverflowError就无语…MyHashMap 里有之前写好的自定义hashcode方法 自定义的MyHashMap 完全是按照 HashMap键值对理解进行复刻的组成 —— 一个接口 包含put 和 get 两个方法 定义一个类用于进行实例化构造有参构造方法进行键值对的定义 之后就是MyHashMap 这个类来实现接口interface:public原创 2021-11-06 17:22:54 · 127 阅读 · 0 评论 -
Java practice 随机生成随机长度的字符串 并自写hashcode函数 返回其hash值
hashcode 主要是返回一个int值 其实核心在于他对于这个hash值怎么得来的算法才是难以理解的 但是给一个算法 照着写还是蛮容易的比如怎么去计算这个hashcode规定:s[0] 表示第一位字符n表示字符串的长度那么 (s[0]+ s[1] + s[2] + s[3]+ s[n-1])*23. 这一个表达式就是求hashcode 的算法 —— 也就是已经设计好 只需读懂他的意思照着码 就行 但是难懂的是为什么要去定义一个这样的表达式 逐渐认识到 自己还只是个coder 不是个designer原创 2021-11-05 12:00:52 · 333 阅读 · 0 评论 -
Java learn and practice HashMap table 及 几种set
相应练习 也就是利用Hash Map 实现 在键值对中 键与值反转——键变值值变键写在之前: 实践明白了HashMap相对于Hashtable 确实是可以存放Null代码示例:import java.util.HashMap;import java.util.Hashtable;import java.util.Map;import java.util.ArrayList;public class Hashset { public static void main(String[]原创 2021-11-03 17:17:09 · 73 阅读 · 0 评论 -
java practice HashMap性能比较与普通循环遍历
HashMap 寻找是键对应值 依靠泛型 可以用多种类类型 进行定义代码示例:package test;import java.util.HashMap;import java.util.Iterator;import le.peo;import java.util.ArrayList;import java.util.List;public class Link { public List<peo> forde(List<peo> list) { A原创 2021-10-27 16:59:12 · 143 阅读 · 0 评论 -
Java practice 创建自定义作用的类
规定 输入1为计算圆形 2 则三角形 0 则结束程序代码示例:package test;import java.util.Scanner;public class areas{ public static void main(String[] args) { Scanner s=new Scanner(System.in); Circ sd=new Circ() ; int y=0; double l=0,o=0,p=0; Rectang原创 2021-10-26 23:20:23 · 152 阅读 · 0 评论 -
Java practice 三种排序 比较时间 二叉树 选择 冒泡
注意 利用集合框架的时候 进行get(); 所得的数字用< > = 进行比较时 应该在List后添加 这种泛型 才不会报错package test;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Link { public Link leftNode; public Link rightNode; public Object value;原创 2021-10-24 23:04:37 · 1507 阅读 · 0 评论 -
Java practice (Java二叉树) 结点插入排序试练
随机生成10个对象 每个对象都随机生成自带的随机数 按照各自的随机数大小比较排序 按从大到小 把这十个对象打印出peo类 用于创建对象包括其名称 随机数(hp)package le;public class peo{ public String name; public int hp; public peo(String name,int hp) { this.name=name; this.hp=hp; } public peo() { } public St原创 2021-10-21 11:59:19 · 91 阅读 · 0 评论 -
java practice 约瑟夫环
利用容器类要简单许多 比起C语言package test;import java.util.ArrayList;import java.util.List;public class josef { public static void main(String[] args) { int count = 0; List<Integer> ob = new ArrayList<Integer>(); for (int原创 2021-10-20 23:39:27 · 87 阅读 · 0 评论 -
Java practice 实现菱形打印
其实算法和C语言一样——package test;import java.util.Scanner;public class Fruit { public static void main(String[] args) { Scanner s=new Scanner(System.in); int n,i; n=s.nextInt(); for ( i = 1; i <= n; i++) { for (int k = 0; k <n-i ; k++原创 2021-10-18 23:09:38 · 92 阅读 · 0 评论 -
java practice 利用LinkedList 实现Stack栈接口及实例化对象中toString方法重写
1、与FIFO(先入先出的)队列类似的一种数据结构是FILO先入后出栈Stack这里就运用LinkedList这个类实现Stack这个接口准备 testFile 类 MyStack类接入接口Stack testFile 主要用于泛型testFile:package test;public class testFile{ public String name; public testFile() { } public testFile(String name) { this原创 2021-10-17 17:04:49 · 311 阅读 · 0 评论 -
Java练习-删除ArrayList中的数据
首先初始化一个Hero集合,里面放100个Hero对象,名称分别是从hero 0hero 1hero 2…hero 99.通过遍历的手段,删除掉名字编号是8的倍数的对象一开始想用迭代器进行删除 但是细节处理方面太多 很难达到预想结果用普通的for循环遍历也能得出package test;import java.util.ArrayList;import java.util.List;import java.util.Iterator;import test.testFile;原创 2021-10-14 11:56:49 · 477 阅读 · 0 评论 -
Java practice io的综合练习总结
写在之前:对于io这部分的学习 从一开始的文件对象就已经感受到 要应用的方法很多很难去把这些方法根据需求进行灵活运用 这和之前学习C语言的文件操作有关 之前就没咋学好 但是Java的文件这方面确实比C语言易理解 。感谢 how2J 教程带我学Java综合练习分三个题对以往学习的常用方法进行评测掌握情况1、文件复制package test;import java.io.*;import java.util.Scanner;public class testFile{ public stat原创 2021-10-04 21:14:07 · 91 阅读 · 0 评论 -
Java practice io自动创建类(System.in)
System.in配合import java.io.IOException;import java.io.InputStream;两个包的导入 在try catch下进行操作 try (InputStream is = System.in;) { while (true) { int i = is.read(); System.out.println(i); } } ca原创 2021-10-03 14:07:03 · 214 阅读 · 0 评论 -
Java practice序列化数组(Serializable 实现)
package test;import java.io.File;import le.APHero;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileNotFoundException;p原创 2021-10-02 23:56:43 · 305 阅读 · 0 评论 -
Java practice 文件加密
准备一个文本文件(非二进制),其中包含ASCII码的字符和中文字符。加密算法:数字:如果不是9的数字,在原来的基础上加1,比如5变成6, 3变成4如果是9的数字,变成0字母字符:如果是非z字符,向右移动一个,比如d变成e, G变成H如果是z,z->a, Z-A。字符需要保留大小写非字母字符比如’,&^ 保留不变,中文也保留不变package le;import java.io.File;import java.io.FileReader;import java.io原创 2021-09-29 15:50:00 · 155 阅读 · 0 评论 -
Java实现杨辉三角
其实都一样和c语言 算法一摸一样代码示例:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner s=new Scanner(System.in); int n=s.nextInt(); int a[][]=new int[100][100]; a[0][0]=0; a[1][0]=1;原创 2021-09-27 23:00:09 · 92 阅读 · 0 评论 -
Java practice——删除标示符
如果用记事本根据UTF-8编码保存汉字就会在最前面生成一段标示符,这个标示符用于表示该文件是使用UTF-8编码的。找出这段标示符对应的十六进制,自动去除这段标示符代码示例:package le;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.nio.charset.*;import java.io原创 2021-09-26 17:11:17 · 275 阅读 · 0 评论 -
Java practice 一次Java实验题 (考验顺序执行)
题目:从键盘分别输入通过空格分割的整型(int)、浮点型(double)、字符型(String)、布尔型(boolean),根据读取的内容判断他们的类型并将他们解析为正确的对象,并都放到一个数组中。输出各个对象的类型我的答案示例:package le;import java.util.Scanner;public class Files { public static void main(String[] args) { Scanner s=new Scanne原创 2021-09-18 23:45:43 · 329 阅读 · 0 评论 -
java learn 关于拆分(合并)文件的算法
拆分文件始终做的一件事就是熟悉 类名以及及其方法以下代码 未写出FileInputStream 和 FileOutputSgtream的声明。 FileInputStream f = null; FileOutputStream f2 = null; try { File file = new File("d:/LOLFolder/langs.model.xml"); long count = file原创 2021-09-17 21:33:55 · 237 阅读 · 0 评论 -
java practice io 子文件遍历(递归思想的运用)
在这之前 有一道练习题是要求找出当前文件夹遍历之后的最大字节文件和最小字节文件 其实有相应的length();的方法 直接可以利用找最大数和最小数的算法重点算法——子文件遍历:代码示例:package le;import java.io.File;public class Files{ public static void findAll(File file){ //判断文件是否存在 if (!file.exists()) {原创 2021-09-14 21:17:48 · 84 阅读 · 0 评论 -
java practice随机生成多组日期
基于之前的在一个特定的时期范围里生成随机的一个时期 此次是生成多组进行一系列操作。public static long[] random(long startYear ,long endYear, int n) { long day=24*60*60*1000; long year =365*day; long yearStart =(startYear-1970)*year; long leapDay=(startYear -1970)/4*day; long hour8=8*60*60*10原创 2021-09-09 22:30:48 · 139 阅读 · 0 评论 -
Java practice 日期calendar练习
找出下个月的倒数第3天是哪天由Calendar类、Date类以及SimpleDateFormat 日期格式化类的方法进行实现:代码示例:package le;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class Test { private static SimpleDateFormat zifu=new SimpleDateFormat();原创 2021-09-08 16:35:40 · 146 阅读 · 0 评论 -
Java practice 一句英文每个单词的首字母大写
此类的练习题在学c语言的时候 经常都会遇到如此的算法题诸如此类的单词反转…代码示例:package le;import java.util.Scanner;public class Test{ public static void main(String[] args) { Scanner s=new Scanner(System.in); String str; str=s.nextLine(); String sb[] =str.split(" ")原创 2021-09-05 14:12:35 · 145 阅读 · 0 评论 -
Java practice日期练习
题目:借助随机数,创建一个从1995.1.1 00:00:00 到 1995.12.31 23:59:59 之间的随机日期在这之前:需要说明的细节1、对于Date d1=new Date(); 这个创建日期对象 d1是直接获得的本电脑现在的时间 做打印就可以看出来2、要在规定的时间范围内1995.1.1 00:00:00 到 1995.12.31 23:59:59 怎样才能实现呢 单靠上述的创建对象很麻烦 要做减法以下提供两种方法:A、 Date start=new Date(95,0,1,0,原创 2021-09-02 09:49:35 · 295 阅读 · 0 评论 -
Java practice控制流程部分
黄金分割数的寻找1到20之间的数相乘最接近0.618public class hero{ public static void main(string[] args) { double max=1; float o=0.618f; double y=0; double f=0,z=0; double ii=0,kk=0; double j=0; for(double i=1;i<=20;i++) { for(double k=1;k<=20;k+原创 2021-08-08 21:44:28 · 97 阅读 · 0 评论 -
Java practice 重复字符串的寻找
题目叙述:(该题来源自how 2J 教程)创建一个长度是100的字符串数组使用长度是2的随机字符填充该字符串数组统计这个字符串数组里重复的字符串有多少种自己所写代码示例:package test;public class SomeString { public static String suiji(int m) { String str=""; String news=""; for (short i = '0'; i <='9' ; i++) { str+=(原创 2021-09-06 21:03:38 · 311 阅读 · 0 评论 -
Java practice StringBuffer性能测试
String与StringBuffer的性能区别?生成10位长度的随机字符串然后,先使用String的+,连接10000个随机字符串,计算消耗的时间然后,再使用StringBuffer连接10000个随机字符串,计算消耗的时间package le;public class digital{ public static String suiji(int m) { char [] s=new char [m]; String str=""; for(short i='0';i<='9'原创 2021-09-04 22:21:03 · 143 阅读 · 0 评论 -
Java practice Arrays类的练习
题目:(来源于how2J 教程)首先定义一个5X8的二维数组,然后使用随机数填充满。先把二维数组使用System.arraycopy进行数组复制到一个一维数组然后使用sort进行排序最后再复制回到二维数组。我的代码:import java.util.Arrays;public class Hero{ public static void main(String[] args) { int [][] s=new int [5][8]; int []a=new int[40]; fo原创 2021-08-13 11:52:22 · 203 阅读 · 0 评论