假设您有一个包含10个索引的arraylist,仅包括数字1,2或3。我试图在不重复相同数字的情况下进行打印,如果可能的话。
例如,arraylist包含数字{1,1,1,2,1,2,2,3,1,2} 我希望它打印为:{1,2,3,1,2,1,2,1,2,1}
对不起,如果这可以比我想做的更简单。我对编程还很陌生。
int j;
int k;
for (j=0; j<p.size()-1;j++)
{
for(k =1; k<p.size()-1;k++)
{
if(p.get(k)==p.get(j))
{
// Person temp = p.get(j);
// p.remove(j);
// p.add(temp);
}
}
}
答案 0 :(得分:1)
不仅如此......试试这个:
for (int i = 0; i < list.size() - 1; i++) {
if (!list.get(i+1).equals(list.get(i)) {
System.out.print (list.get(i));
}
}
答案 1 :(得分:0)
如果我理解正确的话,你会尝试打印这些数字而不是连续多次打印相同的数字,如果可能的话。
这是一个最接近你要求的简单算法(如果可能的话,更喜欢升序排序,避免连续两次重复相同的数字)它可能不会涵盖所有假设,因为问题没有定义所有可能的情况:
使用变量跟踪您打印的前一个数字(在开始时将其初始化为3),循环直到所有计数器都为零:
如果计算1 == 0,则尝试2,然后3
如果前一个数字是1而且2的计数是&gt; 0:打印2,将2保存到“上一个数字”,将计数器减2。
如果计算2 == 0,则尝试3,然后1
如果前一个数字是2且3的计数是> 0:打印3,将3保存到“上一个数字”,将计数器减3