Эта программа для добавления элементов двух списков. Консольные входы имеют следующую форму:
"10, 20, 30"
"20, 30, 40, 50, 60"
вывод будет
[30, 50, 70 50, 60]
Примечание: - если один или оба списка могут быть нулевыми или пустыми, вывод должен быть []
или пустым список. В некоторых тестовых случаях я получаю ошибку исключения Nullpointer
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Source {
public List<Integer> getSumOfListElements(List<Integer> first,List<Integer> second){
List<Integer> list3 = new ArrayList<Integer>();
if(second.isEmpty() || second==null){ //error Nullpointerexception is generated here
if(first.isEmpty() || first==null){
return list3;
}else{
return first;
}
}
else if(first.isEmpty() || second==null){ //error Nullpointerexception is generated here
return second;
}
int l1 = first.size();
int l2 = second.size();
if(l1>l2){
for(int i=0; i<l1; i++){
if(i<l2)
list3.add(first.get(i)+second.get(i));
else
list3.add(first.get(i));
}
}//else part if l2>l1
return list3;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str1 = sc.nextLine();
List<Integer> list1 = new ArrayList<Integer>();
String st1 = str1.replaceAll("^\"|\"$", "");
//same logic for list2 creation
if(!st1.isEmpty()){
String[] ss1=st1.split(", ");
for(int i=0;i<ss1.length;i++){
list1.add(Integer.parseInt(ss1[i]));
}
}
//same if function for list2
if(st1.isEmpty()){
System.out.println(list2);
}....
//same else if for list and for both
....
}else{
Source obj = new Source();
System.out.println("null object");
}
}
}