**My current code:
** Мне нужно отформатировать его, так как повторный идентификатор должен быть ключом на карте, а значения должны быть в arraylist. ** он должен работать как раз идентификатор изменения он должен поместить ключ и arraylis на карте, и он должен начать ключ и ArrayList, инициализировать ArrayList и продолжить выполнение петлиКак упорядочить эти значения в карте коллекции Java
public class Example1 {
//main method
public static void main(String args[]) {
//Employee object initiated
/*Employee class contains the variables id and name and their getter setter method*/
Employee e1 = new Employee();
Employee e2 = new Employee();
Employee e3 = new Employee();
Employee e4 = new Employee();
Employee e5 = new Employee();
Employee e6 = new Employee();
e1.setId("CG1");
e1.setName("CL1");
e2.setId("CG1");
e2.setName("CL2");
e3.setId("CG1");
e3.setName("OTH");
e4.setId("TST");
e4.setName("AGY");
e5.setId("TST");
e5.setName("CAG");
e6.setId("1.2");
e6.setName("EQU");
/* Adding Employees to an ArrayList */
List<Employee> liste = new ArrayList<Employee>();
liste.add(e1);
liste.add(e2);
liste.add(e3);
liste.add(e4);
liste.add(e5);
liste.add(e6);
Map<String, ArrayList<String>> multimap = new HashMap<String, ArrayList<String>>();
ArrayList<String> list = new ArrayList<String>();
System.out.println("size of liste: " + liste.size());
Employee[] et = new Employee[liste.size()];
System.out.println("Employee arry size is: " + et.length);
Iterator EmpArrayListItr = liste.iterator();
for (int k = 0; k < et.length; k++) {
System.out.println("inside for loop");
et[k] = (Employee) EmpArrayListItr.next();
System.out.println("Employee Array contents: " + et[k].getId()
+ "-" + et[k].getName());
System.out.println("object created");
if (k == 0) {
System.out.println("inside k==0 if");
String id = et[k].getId();
System.out.println("id inside k==0 if is: " + id);
list.add(et[k].getName());
}
if (k > 0) {
// et[k] = new Employee();
System.out.println("inside k>0 if");
String prevId = et[k - 1].getId();
System.out.println("previd: " + prevId);
if (et[k].getId().equals(prevId)) {
list.add(et[k].getName());
}
}
/*putting values into map*/
multimap.put(et[k].getId(), list);
System.out.println("value of k: " + k);
}
Set<Entry<String, ArrayList<String>>> entries = multimap.entrySet();
for (Entry entry : entries) {
System.out.println(entry.getKey() + "/" + entry.getValue());
}
}
}
/* O/P currently I am getting:
TST/[CL1, CL2, OTH, CAG]
CG1/[CL1, CL2, OTH, CAG]
1.2/[CL1, CL2, OTH, CAG]
O/P expected:
CG1/[CL1, CL2, OTH]
TST/[AGY,CAG]
1.2/[EQU] */
это может быть реализован с помощью массива как массив [I] [J] и O/P будет такой же, как CG1/[CL1, CL2, OTH] ТСТ/[AGY, CAG] 1.2/[EQU] */ –
Неясно, где и почему вы хотите использовать 2-мерный массив, но в основном вы можете заменить массивList массивом и наоборот – Eritrean
Здесь CG1, TST и 1.2 имеют другую группу и CL1, CL2 , OTH, AGY, CAG и EQU относятся к другой группе, и обе эти группы связаны друг с другом. для пары «государство-государство». Но я должен реализовать его с массивом либо с двумя отдельными массивами, либо с одним массивом. –