【发布时间】:2018-11-06 14:11:02
【问题描述】:
晚上好,
我有一些非常庞大且不可读的代码,我正在尝试简化它们,你有什么好的做法可以推荐
public static String getPropertybyId(){
Scanner reader = new Scanner(System.in); // Reading from System.in
System.out.println("Enter an id number to search properties: ");
int n = reader.nextInt(); // Scans the next token of the input as an int.
reader.close();
System.out.println(id.get(n) +", "+ property_address.get(n) +", "+ first_name.get(n) +", "+ last_name.get(n) +", "+
email.get(n) +", "+
owner_address.get(n) +", "+
price.get(n)+", "+
date_sold.get(n));
return id.get(n) +" ,"+ property_address.get(n) +" ,"+ first_name.get(n) +" ,"+ last_name.get(n) +" ,"+
email.get(n) +" ,"+
owner_address.get(n) +" ,"+
price.get(n);
}
public static void getTopProperties(){
price.remove(0);
int n = 0;
while (n < price.size()){
price.set(n,((price.get(n)).substring(1)));
n = n + 1;
}
Collections.sort(price);
Scanner reader = new Scanner(System.in); // Reading from System.in
System.out.println("Enter a number for the list size of top properties: ");
int user = reader.nextInt(); // Scans the next token of the input as an int.
shrinkTo(price, user);
reader.close();
System.out.println(price);
}
public static void shrinkTo(List list, int newSize) {
int size = list.size();
if (newSize >= size) return;
for (int i = newSize; i < size; i++) {
list.remove(list.size() - 1);
}
对于 getPropertybyID,我将根据 ID 号返回属性的所有详细信息,例如所有者姓名和价格。 有没有办法将不同的数组哈希映射或链接在一起,所以我没有这么长的返回语句?
这是我的数组:
private static List<String> id = new ArrayList<String>();
private static List<String> property_address = new ArrayList<String>();
private static List<String> first_name = new ArrayList<String>();
private static List<String> last_name = new ArrayList<String>();
private static List<String> email = new ArrayList<String>();
private static List<String> owner_address = new ArrayList<String>();
private static List<String> price = new ArrayList<String>();
private static List<String> date_sold = new ArrayList<String>();
对于 getTopProperties,我想删除对另一个类的调用并嵌入该额外代码,但我不知道如何操作。
对不起,如果我的代码不是很好,我是初学者
【问题讨论】:
-
您真的对性能或可读性感兴趣吗?
-
两者都有,你可以帮助我
-
谷歌一个锯齿状数组
-
创建一个名为
Property的类,其中包含所有必填字段,以及 getter 和 setter。给它一个toString打印方法。并且只有一个List<Property>,而不是一大堆List<String>s。 -
这些是列表,而不是数组。改进工作代码是 codereview.se 的业务,但对于初学者来说,请一致地缩进代码。
标签: java arrays performance hashmap scalability