こんにちは、このサイトは初めてです。作業中のプログラムについてサポートが必要です。私が抱えている問題は、文字列と2つの整数(座標として)を格納できないように見えることです。私は他のコードを見ましたが、値がどのように保存されているのかわかりません。以下は、iveが使用しているコードです。コードは問題ないようですが、値を格納しようとすると、乗算整数を入力できません。御時間ありがとうございます
import Java.util.HashMap;
public class map {
class Coords {
int x;
int y;
public boolean equals(Object o) {
Coords c = (Coords) o;
return c.x == x && c.y == y;
}
public Coords(int x, int y) {
super();
this.x = x;
this.y = y;
}
public int hashCode() {
return new Integer(x + "0" + y);
}
}
public static void main(String args[]) {
HashMap<Coords, Character> map = new HashMap<Coords, Character>();
map.put(new coords(65, 72), "Dan");
}
}
いくつかの問題があるようです:
String
であり、Character
ではありませんnew coords(65,72)
はnew Coords(65,72)
である必要があります)これは機能するはずです:
static class Coords {
...
}
Map<Coords, String> map = new HashMap<Coords, String>();
map.put(new Coords(65, 72), "Dan");
ps:class map
内でローカル変数map
に名前を付けることは許可されていますが、そのような名前の衝突を行うことはお勧めできません。 Javaでは、クラスは通常大文字で始まるため、クラスの名前をMapに変更できます。しかし、MapがJavaの標準クラスであることが起こります。したがって、クラスをMainまたはTest、あるいは関連するものと呼んでください。 ;-)
JavaにはClassPointと呼ばれるクラスがあります。
http://docs.Oracle.com/javase/7/docs/api/Java/awt/Point.html
整数精度で指定された、(x、y)座標空間内の位置を表す点。
このリンクで例を見ることができます: http://www.Java2s.com/Tutorial/Java/0261__2D-Graphics/Pointclass.htm
import Java.awt.Point;
class PointSetter {
public static void main(String[] arguments) {
Point location = new Point(4, 13);
System.out.println("Starting location:");
System.out.println("X equals " + location.x);
System.out.println("Y equals " + location.y);
System.out.println("\nMoving to (7, 6)");
location.x = 7;
location.y = 6;
System.out.println("\nEnding location:");
System.out.println("X equals " + location.x);
System.out.println("Y equals " + location.y);
}
}
これがお役に立てば幸いです。
@assyliasに追加
inner class
_ stati
cにするか、new Outer().new Inner()
。次のようなコード:
_public class XYTest {
static class Coords {
int x;
int y;
public boolean equals(Object o) {
Coords c = (Coords) o;
return c.x == x && c.y == y;
}
public Coords(int x, int y) {
super();
this.x = x;
this.y = y;
}
public int hashCode() {
return new Integer(x + "0" + y);
}
}
public static void main(String args[]) {
HashMap<Coords, String> map = new HashMap<Coords, String>();
map.put(new Coords(65, 72), "Dan");
map.put(new Coords(68, 78), "Amn");
map.put(new Coords(675, 89), "Ann");
System.out.println(map.size());
}
}
_
package Lecture3;
import Java.util.Scanner;
public class lecture9 {
private int nInleste;
public lecture9() {/*
* tabell/ // T/*chapter 6 in the books.
**/
}
public static void main(String[] args) {
Scanner inn = new Scanner(System.in);
int nInleste = 3;
double[] tall = new double[nInleste];
double sum = 0;
for (int i = 0; i < nInleste; i++) {
System.out.println("Leste en tall!");
tall[i] = inn.nextDouble();
sum += tall[i];
}
System.out.println(sum);
double snitt = nInleste / nInleste;
System.out.println("Gjennomsnittsverdien:" + snitt);
for (int i = 0; i < nInleste; i++) {
double aavik = tall[i] - snitt;
int avvivk = 0;
System.out.println(i + 1 + " Tal sitt avvik fra gjennomsnittet " + avvivk);
}
}/* end of the main methods */
}
コードに問題がある場合は、この単純なコードを試して、文字列と2つのint
値をmap
に格納できます。
class MyCoord{
private int X;
private int Y;
public MyCoord() {
this(0,0);
}
public MyCoord(int X, int Y) {
this.X = X;
this.Y = Y;
}
public int getX() {
return X;
}
public int getY() {
return Y;
}
public void setX(int X) {
this.X = X;
}
public void setY(int Y) {
this.Y = Y;
}
}
//メインクラスが始まります
public class PointDemo{
public static void main(String[] args) {
Map <String,MyCoord> multiplePoints=new HashMap<String, MyCoord>();
multiplePoints.put("point1", new MyCoord(10, 20));
multiplePoints.put("point2", new MyCoord(100, 2000));
MyCoord coord=multiplePoints.get("point1");
System.out.println(coord.getX() +" : "+coord.getY());
}
}