public static void main(String[] args) { List<Integer> one = new ArrayList<Integer>(); one.add(1); one.add(2); one.add(3); one.add(4); one.add(5); List<Integer> two = new ArrayList<Integer>(); two.add(2); two.add(5); two.add(6); for (Integer oneTemp : one) { if (!two.contains(oneTemp)) { two.add(oneTemp); } }
Iterator<Integer> iterator = two.iterator(); while (iterator.hasNext()) { Integer next = iterator.next(); if (!one.contains(next)) { iterator.remove(); } } System.out.println(one); System.out.println(two); } 不知道是不是楼主的意思
arrayA ={1,2,3,4,5} arrayB = {2,5,6}for (b in arrayB) { int exsit = 0 for (a in arrayA) { if (b == a) { // 存在 exsit = 1; } } if (exsit == 0) { //如果不存在,加入 result.add(a); } }b.addAll(result)
private void saveLanguagesChange() { ArrayList<String> locales = leditor.survey.getLocales(); for (int i = 0; i < ownLanguageBoxs.getItemCount(); i++) {// 增加多语言 String language = ownLanguageBoxs.getItemText(i); String languageKey = Survey.getLocal(language); boolean istExist = false; for (int j = 0; j < locales.size(); j++) { if (languageKey.equals(locales.get(j))) { istExist = true; break; } } if (!istExist) { leditor.survey.addLocales(languageKey); } } List<String> languageAbbrs = leditor.survey.getLocales(); for (int i = 0; i < languageAbbrs.size(); i++) {// 移除语言 String LanguageAbbr = languageAbbrs.get(i); boolean isExist = false; for (int j = 0; j < ownLanguageBoxs.getItemCount(); j++) { String languageKey = Survey.getLocal(ownLanguageBoxs .getItemText(j)); if (LanguageAbbr.equals(languageKey)) { isExist = true; break; } } if (!isExist) { leditor.survey.getLocales().remove(i); leditor.survey.deleteLanguage(leditor.survey.getSurveyId(), LanguageAbbr, new ProcExecuteCallback() { public void finish(ProcData procData) { boolean isSuccess = procData.getProcMessage() .isSuccess(); if (!isSuccess) { Window.alert("delete language error"); } } }); i--; } } } 现在我是用4个循环实现的
List<Integer> one = new ArrayList<Integer>();
one.add(1);
one.add(2);
one.add(3);
one.add(4);
one.add(5);
List<Integer> two = new ArrayList<Integer>();
two.add(2);
two.add(5);
two.add(6); for (Integer oneTemp : one) {
if (!two.contains(oneTemp)) {
two.add(oneTemp);
}
}
Iterator<Integer> iterator = two.iterator();
while (iterator.hasNext()) {
Integer next = iterator.next();
if (!one.contains(next)) {
iterator.remove();
}
} System.out.println(one);
System.out.println(two); }
不知道是不是楼主的意思
arrayB = {2,5,6}for (b in arrayB) {
int exsit = 0
for (a in arrayA) {
if (b == a) {
// 存在
exsit = 1;
}
}
if (exsit == 0) {
//如果不存在,加入
result.add(a);
}
}b.addAll(result)
ArrayList<String> locales = leditor.survey.getLocales();
for (int i = 0; i < ownLanguageBoxs.getItemCount(); i++) {// 增加多语言
String language = ownLanguageBoxs.getItemText(i);
String languageKey = Survey.getLocal(language);
boolean istExist = false;
for (int j = 0; j < locales.size(); j++) {
if (languageKey.equals(locales.get(j))) {
istExist = true;
break;
}
}
if (!istExist) {
leditor.survey.addLocales(languageKey);
}
}
List<String> languageAbbrs = leditor.survey.getLocales();
for (int i = 0; i < languageAbbrs.size(); i++) {// 移除语言
String LanguageAbbr = languageAbbrs.get(i);
boolean isExist = false;
for (int j = 0; j < ownLanguageBoxs.getItemCount(); j++) {
String languageKey = Survey.getLocal(ownLanguageBoxs
.getItemText(j));
if (LanguageAbbr.equals(languageKey)) {
isExist = true;
break;
}
}
if (!isExist) {
leditor.survey.getLocales().remove(i);
leditor.survey.deleteLanguage(leditor.survey.getSurveyId(),
LanguageAbbr, new ProcExecuteCallback() {
public void finish(ProcData procData) {
boolean isSuccess = procData.getProcMessage()
.isSuccess();
if (!isSuccess) {
Window.alert("delete language error");
}
}
});
i--;
}
}
}
现在我是用4个循环实现的
集合框架基本的api要多熟悉一点
list2.retainAll(list1);
import java.util.*;public class ListTest { public static void main(final String[] args) {
// 集合1{1,2,3,4,5}
List<Integer> list1 = new ArrayList<Integer>() {
{
add(1);
add(2);
add(3);
add(4);
add(5);
}
};
// 集合2{2,5,6}
List<Integer> list2 = new ArrayList<Integer>() {
{
add(2);
add(5);
add(6);
}
};
// 把集合2在集合1中没有的,加入集合2,例如 把 集合1中 1,3,4 加入集合2中
Set<Integer> set2 = new LinkedHashSet<>();
set2.addAll(list2);
set2.addAll(list1);
list2.clear();
list2.addAll(set2); // 把集合2在集合1中没有的,移除, 例如移除 6
list2.retainAll(list1);
for (Integer e : list2) {
System.out.println(e);
}
}
}
2
5
1
3
4
import java.util.Iterator;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<Integer> t1=new TreeSet<Integer>();
TreeSet<Integer> t2=new TreeSet<Integer>();
//初始化数据
t1.add(1);t1.add(2);t1.add(3);t1.add(4);t1.add(5);
t2.add(2);t2.add(5);t2.add(6);
for(int i=0;i<t1.size();i++)
t2.addAll(t1);
System.out.println(t2);//打印结果是1,2,3,4,5,6,实现了将第一个集合的元素加到了第二个集合
Iterator<Integer> it=t2.iterator();
while(it.hasNext()){
int value=it.next();
if(!t1.contains(value))
it.remove();
}
System.out.println(t2);//打印结果是1,2,3,4,5
}
}
如果可以使用Lambda表达式,#13的代码基本上可以做到一个for都不用
public class ListTest2 { public static void main(String[] args) {
List<Integer> one = new ArrayList<Integer>();
one.add(1);
one.add(2);
one.add(3);
one.add(4);
one.add(5);
List<Integer> two = new ArrayList<Integer>();
two.add(2);
two.add(5);
two.add(6); for (Integer oneTemp : one) {
if (!two.contains(oneTemp)) {
two.add(oneTemp);
}
} Iterator<Integer> iterator = two.iterator();
while (iterator.hasNext()) {
Integer next = iterator.next();
if (!one.contains(next)) {
iterator.remove();
}
} System.out.println(one);
System.out.println(two); }
}
[1, 2, 3, 4, 5]
[2, 5, 1, 3, 4]应该是楼主的意思。
unsigned int a1[] = {1,2,3,4,5};
unsigned int a2[] = {2,5,6,0,0}; //0为无效成员,无法自增长 unsigned int db1 = 0U;
unsigned int db2 = 0U;
register unsigned int sb1 = a1[0];
register unsigned int sb2 = a2[0]; a2[0] = a1[0] = 0U; for (register unsigned int i = 1U; i < (sizeof(a1) / 4U); ++i)
{
sb1 += 1U << (a1[i] - 1U);
a1[i] = 0U;
sb2 += 1U << (a2[i] - 1U);
a2[i] = 0U;
}
db1 = sb1 & sb2;
db2 = (sb1 | sb2) ^ ((sb1 | sb2) ^ sb1);
sb1 = sb2 = 0U; for (register unsigned int i = 0U; i < (sizeof(a1) / 4U); ++i)
{
if ((db2 >> i & 1U))
{
a2[sb1++] = (i + 1U);
}
if ((db1 >> i & 1U))
{
a1[sb2++] = (i + 1U);
}
}
*
*/
package com.fortest;import java.awt.print.Printable;
import java.util.ArrayList;
import java.util.List;/**
* @author Administrator
*
*/
public class ForTest { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Integer> list1 = new ArrayList<Integer>();
List<Integer> list2 = new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list1.add(5);
list2.add(2);
list2.add(5);
list2.add(6);
for(int i = 0;i < list2.size();i ++){
if(validate(list2.get(i), list1)){
list2.remove(i);
}
}
System.out.println(list2);
}
public static boolean validate(int temp,List<Integer> list){
boolean flag = true;
for(Integer test : list){
if(test.equals(temp)){
flag = false;
break;
}
}
return flag;
}}
如果可以使用Lambda表达式,#13的代码基本上可以做到一个for都不用嗯 看你怎么理解一个for都用不到而已 如果你的看法是自己写的代码不用到for循环的话 确实可以
如果不利用集合框架的这些api 就单纯说数组实现你的需求 至少我是想不到的
Integer str2[] = new Integer[]{2,3,4,6}
str2中最后要和str1里的数据保持一致。
我需要遍历,标记出哪个需要添加,哪个需要移除,并进行相关数据库操作。
import java.util.*;public class CollectionTest {
@SuppressWarnings("serial")
public static void main(String[] args) {
// 集合初始化
// 集合1:1,2,3,4,5
List<Integer> listOne = new ArrayList<Integer>() {
{
add(1);
add(2);
add(3);
add(4);
add(5);
}
};
// 集合2:2,5,6
List<Integer> listTwo = new ArrayList<Integer>() {
{
add(2);
add(5);
add(6);
}
};
// 声明临时集合
Set<Integer> tempSet = new LinkedHashSet<Integer>();
// 将已初始化的两个集合加入到临时集合中
tempSet.addAll(listOne);
tempSet.addAll(listTwo);
// 清除临时集合中在集合1中没有的
tempSet.retainAll(listOne);
// 输出最终结果
for (Integer integer : tempSet) {
System.out.println(integer);
}
}
}最终的结果是:1
2
3
4
5应该是你要的答案!!!楼主加油
这个方法没有去除重复的部分,输出是不对的
好好去看看API,了解一下交集和并集
这个方法没有去除重复的部分,输出是不对的
好好去看看API,了解一下交集和并集
好的,谢谢
这个方法没有去除重复的部分,输出是不对的
好好去看看API,了解一下交集和并集
好的,谢谢
如果我有什么讲的不对的地方,欢迎指正