java for循環(huán),有兩個集合,第一個集合全部的子元素都要和第二個集合的子元素進行單個對比。換成語法怎么寫。求大神指點,
問題模型:
list1=[1,2,3,4,5,6];
list2=[3,5,6]
list1,list2均為變量。這里只是隨便取幾個數(shù)字進行示意。
循環(huán)圖示意: 以此類推
每個List1的對象在循環(huán)和list2對象對比的時候,if判斷,如果相同則發(fā)生什么操作,不相同則繼續(xù)循環(huán)
謝邀
List<Integer> list1 = new ArrayList<Integer>();
list1.addAll(Arrays.asList(new Integer[]{1,2,3,4,5,6}));
List<Integer> list2 = new ArrayList<Integer>();
list2.addAll(Arrays.asList(new Integer[]{3,5,6}));
for(Integer var2 : list2){
for(Integer var1 : list1){
if(var2.equals(var1)){
System.out.println("do something");
}
}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.UUID;
public class Test {
public static void main(String[] args) throws Exception {
//對象
List<Model> list1 = new ArrayList<Model>();
list1.add(new Model(1,"11"));
list1.add(new Model(2,"33"));
list1.add(new Model(3,"33"));
List<Model> list2 = new ArrayList<Model>();
list2.add(new Model(1,"11"));
list2.add(new Model(2,"33"));
list2.add(new Model(3,"33"));
for(Model m2 : list2){
for(Model m1 : list1){
if(m1.getAttr2().equals(m2.getAttr2())){
System.out.println("do something");
}
}
}
/**可以簡單封裝下,寫一個通用的流程,這里使用Comparator接口**/
//使用通用的方法 Object
compareSomething(list1,list2,new Comparator<Model>() {
@Override
public int compare(Model o1,Model o2) {
return o1.getAttr2().compareTo(o2.getAttr2());
}
});
//使用通用的方法 Integer
List<Integer> list3 = new ArrayList<Integer>();
list3.addAll(Arrays.asList(new Integer[]{1,2,3,4,5,6}));
List<Integer> list4 = new ArrayList<Integer>();
list4.addAll(Arrays.asList(new Integer[]{3,5,6}));
compareSomething(list3,list4,new Comparator<Integer>() {
@Override
public int compare(Integer o1,Integer o2) {
return o1.compareTo(o2);
}
});
}
public static <T> void compareSomething(List<T> list1,List<T> list2,Comparator<T> compare){
for(T m2 : list2){
for(T m1 : list1){
if(0 == compare.compare(m1, m2)){
System.out.println("do something");
}
}
}
}
}
class Model{
private Integer attr1 = 1;
private String attr2 = UUID.randomUUID().toString();
public Model(){
}
public Model(Integer attr1,String attr2){
this.attr1 = attr1;
this.attr2 = attr2;
}
public Integer getAttr1() {
return attr1;
}
public void setAttr1(Integer attr1) {
this.attr1 = attr1;
}
public String getAttr2() {
return attr2;
}
public void setAttr2(String attr2) {
this.attr2 = attr2;
}
}
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術與教育服務機構,發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。