-8
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import com.google.common.collect.*;
public class start {
public static void main(String[] args) {
start ex = new start();
ex.doWork();
}
public void doWork(){
List<String> asu2 = new ArrayList<String>(); // Create and initialization Lists
List<String> rzs = new ArrayList<String>(); // Order collection in descending order
List<String> same = new ArrayList<String>();
for (int j=0;j<10;j++) {
for (int i=0;i<2;i++){ asu2.add("M1");}
asu2.add("M2");
asu2.add("M3");
asu2.add("M4");
asu2.add("M5"); }
System.out.println("Asu size :"+asu2.size());
List<String> asu = Ordering.natural().sortedCopy(asu2); // Order collection in direct order
Collections.reverse(asu);
for (int j=0;j<5;j++) {
for (int i=0;i<2;i++){ rzs.add("M1");}
rzs.add("M2");
rzs.add("M3");
rzs.add("M4");
rzs.add("M5"); }
for (int j=0;j<3;j++) {
for (int i=0;i<2;i++){ rzs.add("M1M2");}
rzs.add("M2M3");
rzs.add("M3M4");
rzs.add("M4M5");
}
for (int j=0;j<2;j++) {
for (int i=0;i<2;i++){ rzs.add("M1M2M3");}
rzs.add("M2M3M4");
rzs.add("M3M4M5");
rzs.add("M1M4M5");
rzs.add("M1M2M5");
}
System.out.println("Rzs size: "+rzs.size());
for (int i=0;i<asu.size();i++){ // Поиск элементов типа M1<-->M1
for (int j=0;j<rzs.size();j++) {
if (asu.get(i).equals(rzs.get(j)))
{ System.out.println("("+asu.get(i)+") ASU <--> ("+rzs.get(j)+") RZS ");
System.out.println("i+ "+i+" j: "+j);
same.add(asu.get(i));
asu.remove(i); rzs.remove(j);
}
}
}
for (int i=0;i<asu.size();i++){ // Поиск элементов M1<-->M1M2
for (int j=0;j<rzs.size();j++) {
if ((asu.get(i).equals(rzs.get(j))) | rzs.get(j).contains(asu.get(i)))
{ System.out.println("("+asu.get(i)+") ASU <--> ("+rzs.get(j)+") RZS ");
same.add(asu.get(i));
asu.remove(i); rzs.remove(j);
}
}
}
System.out.println("Same size: " + same.size());
System.out.println("Rzs size: "+rzs.size());
for (int i=0;i<rzs.size();i++)
System.out.println(rzs.get(i));
System.out.println("Asu size: "+asu.size());
for (int i=0;i<asu.size();i++)
System.out.println(asu.get(i));
}
}
Same size: 55
Rzs size: 2
M2M3
M3M4
Asu size: 5
M4
M2
M1
M1
M1
的邏輯是這樣的。如果((asu.get(i).equals(rzs.get(j))) | rzs.get(j).contains(asu.get(i)))
,它將從列表中刪除。 爲什麼元素仍然在ASU(例如M4),他們有一對(M3M4)? 對不起,代碼的結構。
你在說什麼邏輯?這段代碼應該做什麼? – Philipp
當您在調試器中遍歷代碼時,您會看到什麼?這就是它的目的。 –
邏輯很簡單。如果在ASU中存在一個元素(例如M1),他可以在列表中找到RZS與他相同或由其組成的元素(如M1,M1M2)。也就是說,從ASU獲取元素,如果它對應於RZS中的M1 M1M2,將它們從列表中刪除,寫入M1的列表中SAME –