Этот вопрос, кажется, является дубликатом Слияния интервалов в Python .
Если я хорошо понял проблему, у вас есть список интервалов (1 5; 2 8; 9 12; 20 30) и диапазон (0 200), и вы хотите получить позиции вне своих интервалов, но внутри заданного диапазона. Правильно?
Там есть библиотека Python, которая может помочь вам в этом: python-interval (также доступен из PyPI с помощью pip). Отказ от ответственности: Я сторонник этой библиотеки.
Предполагая, что вы импортируете эту библиотеку следующим образом:
import intervals as I
Довольно легко получить ответ. В принципе, вы сначала хотите создать дизъюнкцию интервалов на основе тех, которые вы предоставляете:
inters = I.closed(1, 5) | I.closed(2, 8) | I.closed(9, 12) | I.closed(20, 30)
Затем вы вычисляете дополнение этих интервалов, чтобы получить все, что «снаружи»:
compl = ~inters
Затем вы создаете союз с [0, 200], так как вы хотите ограничить точки до этого интервала:
print(compl & I.closed(0, 200))
В результате:
[0,1) | (8,9) | (12,20) | (30,200]
Во-первых, создайте ключевой объект, используя пользовательский ввод, и выполните вычисления и оцените значение из него позже, вы можете сохранить его в hashmap как пару значений ключа.
class InputTest{
public static void main(String [] arg){
Scanner sc=new Scanner(System.in);
HashMap<String,String> map= new HashMap<>();
for(int I=0; I<5;I++)
{
String key = sc.nextLine();
String Val= sc.nextLine();
map.put(key,Val);
}
System.out.println(map);
}
}