에서 같은 맵에서 두 개의 동일한 요소가있는 경우 알고 내가지도, studentId
, subject
, major
의 세 가지 요소를 넣어.어떻게</p> <pre><code>Map<String,Map<String,List<String>>> scheduleMap = new HashMap<>(); </code></pre> <p>자바
,
scheduleMap1.add("30600001", "INFO1105", "IT");
scheduleMap1.add("30600001", "ELEC1603", "ElecEng");
scheduleMap1.add("30600002", "INFO1103", "IT");
scheduleMap1.add("30600003", "INFO1003", "IT");
scheduleMap1.add("30600001", "ELEC1601", "ElecEng");
scheduleMap1.add("30600002", "INFO1003", "IT");
scheduleMap1.add("30600002", "ELEC1603", "ElecEng");
scheduleMap1.add("30600001", "INFO1003", "IT");
는지도에 넣었다.
최종 목적은 각 학생 ID 30600001, 30600002 및 30600003에 대해 키에 두 개의 동일한 전공이 저장된 경우 그 수가 증가해야한다는 것입니다.
예를 들어, 예에서와 같이 30600001은 주요 요소로 두 개의 "IT"와 두 개의 "ElecEng"를 가지고 있습니다. 카운트가 studentId, 30600002 2.
같아야한다 그래서, 내가 달성 할 수 카운트가 1
을해야한다, 그래서 두 사람은 "IT는"그러나 주요 요소로 하나의 "ElecEng"가 가지고 내 다음과 같이 코딩에 의한 목표 :
for(Entry<String, Map<String, List<String>>> studentId : scheduleMap.entrySet()) {
for(Entry<String, List<String>> subject : studentId.getValue().entrySet())
{
for(String major : subject.getValue())
{
if(major.contains("IT"))
{
it++;
} else if(major.contains("ElecEng")) {
elec++;
}
if(it >= 2 || elec >= 2)
{
count++;
}
}
그러나, 등 찾는 주요 major.contains("IT")
및 major.contains("ElecEng")
을 지적하지 않음으로써 수를 얻을 수있는 방법이있다?
내가 정말 좋아하는 일을 증가 수를 얻으려면,
if(everytime key.subject.major has two identical elements)
{
count++;
}
어떤 도움도 좋은 것입니다. 감사!
지도에는 'add' 메소드가없고'put' 메소드에는 3 개의 값이 아닌 키 + 값이 필요합니다. 따라서 당신의 예는 많은 의미를 갖지 않습니다. –
'scheduleMap1.add (a, b, c); 대신'scheduleMap1.put (key, value)'가 아니어야합니까? – procrastinator
아, 맵에 3 개의 요소를 넣을 때 별도로 메서드를 추가했습니다. –