如何在 Java 中的字符串中使用 getter
How to use getter in string in Java
public class Obj{
int len;
int id[] = new int[100];
int pr[] = new int[100];
/*Constructor*/
public Obj(int a[], int b[], int l){
int i;
for(i=0;i<len;i++){
id[i] = a[i];
}
for(i=0;i<len;i++){
pr[i] = b[i];
}
len = l;
}
public void setLen(int l){
len = l;
}
public void getLen(int l){
return len;
}
public void setId(int a[]){
for(int i=0;i<len;i++){
id[i] = a[i];
}
}
public void setPrice(int b[]){
for(int i=0;i<len;i++){
pr[i] = b[i];
}
}
public void sort(){
int i, j;
for(i=0;i<len;i++){
for(j=0;j<len-i-1;j++){
if(pr[j]>pr[j+1]){
int temp = pr[j];
pr[j] = pr[j+1];
pr[j+1] = temp;
int temp2 = id[j];
id[j] = id[j+1];
id[j+1] = temp2;
}
}
}
for(i=0;i<len;i++){
System.out.println(id[i]+" "+pr[i]);
}
}
}
你好,我是 java 的新手,我正在尝试将我的字符串 id 和 pr 初始化为 len 的大小,但是当我 运行 它时它不起作用。所以我决定用常量 100 代替,这样代码就可以正常工作了。有人能告诉我如何将字符串的大小设置为 len 的值吗?
在我的 main class 中,我先调用方法 setLen
谢谢
在您的构造函数中,您应该在 对它进行任何计算之前为len
赋值。关于数组,也在构造函数中初始化它们。
...
int[] id; // more common to write int[] instead of id[]
int[] pr;
...
public Obj(int a[], int b[], int l){
int i;
len = l;
pr = new int[len];
id = new int[len];
for(i=0;i<len;i++){
id[i] = a[i];
}
for(i=0;i<len;i++){
pr[i] = b[i];
}
}
in my main class, i call the method setLen first
你不能真正调用setLen
before constructor
通常你不应该使用两个单独的数组并隐含地假设它们具有相同的长度并且一个数组的每个元素对应于具有相同索引的另一个数组的元素。
更好的解决方案:
- 使用 HashMap id => 价格(但是可能会导致排序问题)
- 使用包含 id 和 price 的结构或 class 并将此 class 的对象放入数组或另一个容器中。
我还建议使用 ArrayList 或其他集合之一 classes 而不是数组。如果需要,这将允许您稍后修改大小。他们也有内置的排序。
public class Obj{
int len;
int id[] = new int[100];
int pr[] = new int[100];
/*Constructor*/
public Obj(int a[], int b[], int l){
int i;
for(i=0;i<len;i++){
id[i] = a[i];
}
for(i=0;i<len;i++){
pr[i] = b[i];
}
len = l;
}
public void setLen(int l){
len = l;
}
public void getLen(int l){
return len;
}
public void setId(int a[]){
for(int i=0;i<len;i++){
id[i] = a[i];
}
}
public void setPrice(int b[]){
for(int i=0;i<len;i++){
pr[i] = b[i];
}
}
public void sort(){
int i, j;
for(i=0;i<len;i++){
for(j=0;j<len-i-1;j++){
if(pr[j]>pr[j+1]){
int temp = pr[j];
pr[j] = pr[j+1];
pr[j+1] = temp;
int temp2 = id[j];
id[j] = id[j+1];
id[j+1] = temp2;
}
}
}
for(i=0;i<len;i++){
System.out.println(id[i]+" "+pr[i]);
}
}
}
你好,我是 java 的新手,我正在尝试将我的字符串 id 和 pr 初始化为 len 的大小,但是当我 运行 它时它不起作用。所以我决定用常量 100 代替,这样代码就可以正常工作了。有人能告诉我如何将字符串的大小设置为 len 的值吗?
在我的 main class 中,我先调用方法 setLen
谢谢
在您的构造函数中,您应该在 对它进行任何计算之前为len
赋值。关于数组,也在构造函数中初始化它们。
...
int[] id; // more common to write int[] instead of id[]
int[] pr;
...
public Obj(int a[], int b[], int l){
int i;
len = l;
pr = new int[len];
id = new int[len];
for(i=0;i<len;i++){
id[i] = a[i];
}
for(i=0;i<len;i++){
pr[i] = b[i];
}
}
in my main class, i call the method setLen first
你不能真正调用setLen
before constructor
通常你不应该使用两个单独的数组并隐含地假设它们具有相同的长度并且一个数组的每个元素对应于具有相同索引的另一个数组的元素。
更好的解决方案:
- 使用 HashMap id => 价格(但是可能会导致排序问题)
- 使用包含 id 和 price 的结构或 class 并将此 class 的对象放入数组或另一个容器中。
我还建议使用 ArrayList 或其他集合之一 classes 而不是数组。如果需要,这将允许您稍后修改大小。他们也有内置的排序。