ArrayList数组遍历错误
数组遍历检查错误当每输入一个数字时,将他存储在一个数组中,检测有没有输入重复的,然后输入了以下代码
123456789101112131415161718public static void main(String args[]) { ArrayList<Integer> list = new ArrayList<>(); Scanner scanner = new Scanner(System.in); System.out.print("Enter an integer: "); int integer = scanner.nextInt(); list.add(integer); while(true) { System.out.print("Enter an integer: "); integer = scanner.nextInt(); list.add(integer); for(int i = 0 ...
Java类中数据类型的默认属性
public–都可访问protected–包内和子类可访问不写(default)–包内可访问private–类内可访问
char数组的toString
今天写作业,写到有一个char,调用并返回String类型,完了之后我想这个还不简单吗。于是信笔写下
12char[] chars = { 'H', 'o', 'w', ' ', 'A', 'r', 'e', ' ', 'Y', 'o', 'u' };System.out.println(chars.toString());
然而却只能打印出一串奇怪的字符串
1[C@7852e922
如果要是单纯打印的话就算了,可以用以下语句
12char[] chars = { 'H', 'o', 'w', ' ', 'A', 'r', 'e', ' ', 'Y', ...
Triangle2D,小东西,真别致
今天下午在图书馆待了一下午的时间做出来这个作业题,首先来看以下这个题目
题目
这个题目标着三颗星,看起来很难,做起来有点难。
难点我个人认为有以下几个难点:
判定一个点在三角形内是最难的
其实是一个三角形在另一个三角形内
其次是一个三角形和一个三角形重叠。
解决方案
判定一个点在三角形内。 这个判定,我在网上搜索了很久并理解了很久才明白(hmmm,可能是我天资愚钝吧,好长时间才弄明白)
下图中的p 点在三角形p1p2p3中,我们可以看到向量p1->p2, 或者 p2->p3, 或者p3->p1,按照这个方向行走的话,这个p点始终在向量的右侧, 这样判定三次(三条边)就可以完成
但是在程序中我们就不能分辨出左右来,然后我们就判定p和向量的另外一点在同一侧就好了。例如向量p1->p2, 可见p和p3都在向量p1->p2的同侧,这样判定三次就可以判定出一个点在三角形内。
解决方案的代码如下
123456789101112131415161718192021222324252627282930313233/** If p is in th ...
整数栈的pop
栈的弹出函数123456789/** Return the number of elements in the stack */public int getSize() { return size;}/** Return and remove the top element from the stack */public int pop() { return elements[--size];}
使用弹出的时候错误123for(int i = 0; i< stack.getSize();i++) { System.out.println(stack.pop());}
原因是,每次弹出一个元素后栈的长度就减少一。所以这样会让栈弹出的数量变少。因此先记录下栈的长度(深度),然后在进行遍历弹出。修改后如下
1234int stackSize = stack.getSize();for(int i = 0; i< stackSize;i++) { System.out.println(stack.pop());& ...
一个整数的所有最小公因数
今天做题看到一个题目,求解一个整数的最小公因数。好像做过哦,然后我就写了以下代码
123456for (int i = 0; i < number / 2 + 1; i++) { while (number % i == 0) { System.out.print(i + " "); number /= i; }}
然而很巧的,当number = 120 时,输出了2, 2, 2, 3。????我的5呢?实在找不到错误设置断点,单步调试,然后发现了根源所在。原因是for (int i = 0; i < number / 2 + 1; i++ ) 这个循环条件除了问题。每当出现了一个因数时,number的值就变化了。所以修改如下。
123456for (int i = 2; i < number + 1; i++) { while(number % i == 0) { System.out.print(i + " "); numb ...
电脑装双系统
一块固态一块机械一直有装两个系统得想法,但是无奈安装固态硬盘的时候,机械硬盘已经崩溃,被迫换硬盘,只有固态硬盘里有一个系统,机械硬盘里是空的。我曾经尝试过要在机械硬盘里安装,结果都失败了。
需要ESP分区和MSR分区曾经尝试想机械硬盘中装系统,然而写入镜像后并不能产生启动,不成功。
这时我们要用到,Disk Genius专业版将硬盘格式转化为GUID模式,来重新创建ESP和MSR分区,并在windows安装器中设置ESP分区为启动分区之后才可以写入。
Point2D不能使用问题
Java Programming中的Point2D类课本上的内容是这样的123456789101112131415161718192021import java.util.Scanner;import javafx.geometry.Point2D;public class TestPoint2D { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter point1's x-, y-coordinates:"); double x1 = input.nextDouble(); double y1 = input.nextDouble(); System.out.print("Enter point2' s x-, y-coordinates:"); double x2 = input.nextDouble(); double y2 = i ...


