/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main
( String [ ] args
) {
List< String> firstList = new ArrayList< String> ( ) ;
firstList.add ( "" ) ;
List< String> secondList = new ArrayList< String> ( ) ;
secondList.add ( "OP1004" ) ;
List< String> thirdList = new ArrayList< String> ( ) ;
thirdList.add ( "OP1003" ) ;
List< String> fourthList = new ArrayList< String> ( ) ;
fourthList.add ( "OP1006" ) ;
fourthList.add ( "OP1044" ) ;
fourthList.add ( "OP1046" ) ;
List< String> fifthList = new ArrayList< String> ( ) ;
fifthList.add ( "OP1008" ) ;
fifthList.add ( "OP1009" ) ;
fifthList.add ( "OP1044" ) ;
fifthList.add ( "OP1005" ) ;
fifthList.add ( "OP1004" ) ;
Map
< String , List
< String
>> map
= new LinkedHashMap
< String , List
< String
>> ( ) ; map.put ( "OP1004" , firstList) ;
map.put ( "OP1006" , secondList) ;
map.put ( "OP1005" , thirdList) ;
map.put ( "OP1009" , fourthList) ;
map.put ( "OP1016" , fifthList) ;
for ( Map .
Entry < String , List
< String
>> keyAndValue
: map.
entrySet ( ) ) { String key
= keyAndValue.
getKey ( ) ; List< String> values = keyAndValue.getValue ( ) ;
if ( values.isEmpty ( ) || ( values.size ( ) < 2 ) )
continue ;
for ( Map .
Entry < String , List
< String
>> mapKeyAndValue
: map.
entrySet ( ) ) {
String key1
= mapKeyAndValue.
getKey ( ) ; if ( key.equals ( key1) )
continue ;
List< String> values2 = mapKeyAndValue.getValue ( ) ;
if ( values2.isEmpty ( ) || ( values2.size ( ) < 2 ) )
continue ;
values2.removeAll ( values) ;
}
}
for ( Map .
Entry < String , List
< String
>> keyAndValue
: map.
entrySet ( ) ) { System .
out .
println ( "Key is " + keyAndValue.
getKey ( ) + " Value are " + keyAndValue.
getValue ( ) ) ; }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCgkJTGlzdDxTdHJpbmc+IGZpcnN0TGlzdCA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOwoJCWZpcnN0TGlzdC5hZGQoIiIpOwoKCQlMaXN0PFN0cmluZz4gc2Vjb25kTGlzdCA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOwoJCXNlY29uZExpc3QuYWRkKCJPUDEwMDQiKTsKCgkJTGlzdDxTdHJpbmc+IHRoaXJkTGlzdCA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOwoJCXRoaXJkTGlzdC5hZGQoIk9QMTAwMyIpOwoKCQlMaXN0PFN0cmluZz4gZm91cnRoTGlzdCA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOwoJCWZvdXJ0aExpc3QuYWRkKCJPUDEwMDYiKTsKCQlmb3VydGhMaXN0LmFkZCgiT1AxMDQ0Iik7CgkJZm91cnRoTGlzdC5hZGQoIk9QMTA0NiIpOwoKCQlMaXN0PFN0cmluZz4gZmlmdGhMaXN0ID0gbmV3IEFycmF5TGlzdDxTdHJpbmc+KCk7CgkJZmlmdGhMaXN0LmFkZCgiT1AxMDA4Iik7CgkJZmlmdGhMaXN0LmFkZCgiT1AxMDA5Iik7CgkJZmlmdGhMaXN0LmFkZCgiT1AxMDQ0Iik7CgkJZmlmdGhMaXN0LmFkZCgiT1AxMDA1Iik7CgkJZmlmdGhMaXN0LmFkZCgiT1AxMDA0Iik7CgoJCU1hcDxTdHJpbmcsIExpc3Q8U3RyaW5nPj4gbWFwID0gbmV3IExpbmtlZEhhc2hNYXA8U3RyaW5nLCBMaXN0PFN0cmluZz4+KCk7CgkJbWFwLnB1dCgiT1AxMDA0IiwgZmlyc3RMaXN0KTsKCQltYXAucHV0KCJPUDEwMDYiLCBzZWNvbmRMaXN0KTsKCQltYXAucHV0KCJPUDEwMDUiLCB0aGlyZExpc3QpOwoJCW1hcC5wdXQoIk9QMTAwOSIsIGZvdXJ0aExpc3QpOwoJCW1hcC5wdXQoIk9QMTAxNiIsIGZpZnRoTGlzdCk7CgoJCWZvciAoTWFwLkVudHJ5PFN0cmluZywgTGlzdDxTdHJpbmc+PiBrZXlBbmRWYWx1ZTogbWFwLmVudHJ5U2V0KCkpIHsKCQkJU3RyaW5nIGtleSA9IGtleUFuZFZhbHVlLmdldEtleSgpOwoJCQlMaXN0PFN0cmluZz4gdmFsdWVzID0ga2V5QW5kVmFsdWUuZ2V0VmFsdWUoKTsKCgkJCWlmICh2YWx1ZXMuaXNFbXB0eSgpIHx8ICh2YWx1ZXMuc2l6ZSgpIDwgMikpCgkJCQljb250aW51ZTsKCgkJCWZvciAoTWFwLkVudHJ5PFN0cmluZywgTGlzdDxTdHJpbmc+PiBtYXBLZXlBbmRWYWx1ZTogbWFwLmVudHJ5U2V0KCkpIHsKCgkJCQlTdHJpbmcga2V5MSA9IG1hcEtleUFuZFZhbHVlLmdldEtleSgpOwoJCQkJaWYgKGtleS5lcXVhbHMoa2V5MSkpCgkJCQkJY29udGludWU7CgoJCQkJTGlzdDxTdHJpbmc+IHZhbHVlczIgPSBtYXBLZXlBbmRWYWx1ZS5nZXRWYWx1ZSgpOwoJCQkJaWYgKHZhbHVlczIuaXNFbXB0eSgpIHx8ICh2YWx1ZXMyLnNpemUoKSA8IDIpKQoJCQkJCWNvbnRpbnVlOwoKCQkJCXZhbHVlczIucmVtb3ZlQWxsKHZhbHVlcyk7CgkJCX0KCQl9CgoJCWZvciAoTWFwLkVudHJ5PFN0cmluZywgTGlzdDxTdHJpbmc+PiBrZXlBbmRWYWx1ZTogbWFwLmVudHJ5U2V0KCkpIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKCJLZXkgaXMgIiArIGtleUFuZFZhbHVlLmdldEtleSgpICsgIiBWYWx1ZSBhcmUgIiArIGtleUFuZFZhbHVlLmdldFZhbHVlKCkpOwoJCX0KCX0KfQ==