求恶魔高校第4季百度云全季百度云资源

本帖子已过去太久远了,不再提供回复功能。2012年1月 扩充话题大版内专家分月排行榜第二
2008年11月 C/C++大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。> 怎样在一个数组中循环比较是否有两个或多个值相同?如题,最好可以给出例子,谢谢
怎样在一个数组中循环比较是否有两个或多个值相同?如题,最好可以给出例子,谢谢
ranpengnet & &
发布时间: & &
浏览:1 & &
回复:8 & &
悬赏:0.0希赛币
怎样在一个数组中循环比较是否有两个或多个值相同?如题,最好可以给出例子,谢谢!
给你思路,下面是简单实现的伪代码,返回的是原始数组中有重复值的元素:
简单地说就是把数组进行排序,然后再顺序遍历比较这个数组中的元素;
String[] a = {,,,,,,,,,,} ;
s.sort(); //对数组进行排序
String[] b = new String[a.size()];
String temp = a[0];
int j = 0;
for(int i = 1;i &a.size();i++){
if(temp.equals(a[i])){
temp = a[i];
ranran1018 & &
23:12:19 & &
& & (0)(0)楼上的单循环能实现
for(int i = 1;i &a.size();i++){
if(temp.equals(a[i])){
temp = a[i];
temp = a[i];中的变量i不在生命期了吧
ranran0920 & &
23:12:19 & &
& & (0)(0)最容易想到的方法:
int[] data={1,2,3,2,4,3};
int[] data_num=new int[6];
for(int i=0;i &data.i++){
data_num[i]=getDataNum(data[i],data);
public int getDataNum(int data,int data_arrray[]){
int num=0;
for(int i=1;i &data_arrray.i++){
if(data==data_arrray[i]){
ranran84 & &
23:12:19 & &
& & (0)(0)if((b=s.add(a[i]))==false){
if((s.add(a[i]))==false){
不好意思,重复引用b了。
ranran0920 & &
23:12:19 & &
& & (0)(0)把数组存到数据库里面。然后
select count(*) from tmp where count(*)& 1
group by 字段
ranranwei & &
23:12:19 & &
& & (0)(0)楼上比较强..
ranqun10 & &
23:12:19 & &
& & (0)(0)把数组的值放到treeset里面,如果treeset的size &=数组的length-2就表示至少有2个元素相等
ranran0920 & &
23:12:19 & &
& & (0)(0)完整代码:
import java.util.ArrayL
import java.util.A
import java.util.HashM
import java.util.HashS
import java.util.I
import java.util.L
import java.util.M
import java.util.S
public class Container {
public static void main(String args[]) {
Container cont = new Container();
List list = new ArrayList();
int[] a = { 23, 10, 5, 19, 14, 31, 9, 6, 7, 3 };
for (int i = 0; i
& a. i++) {
list.add(new Integer(a[i]));
System.out.println(cont.checkTheSameData(list));
* check the list have same element
* @param list List
* @return have same element result
private boolean checkTheSameData(List list) {
Iterator it = list.iterator();
Map map = new HashMap();
Integer element =
while (it.hasNext()) {
element = (Integer) it.next();
if (null != map.get(element)) {
map.put(element, element);
}ranrantongxue & &
23:12:19 & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&遍历一个数组是编程中最常见不过的了,这里跟大家讨论下for和foreach两种方法。用这两种方法执行遍历的场景太多太多了,这里我们只针对以下两个数组作为例子来讨论。所谓管中窥豹,多少能理清一点两者的区别。
首先,我们先准备两个用于遍历的数组:
$arr1=array(1=&'a', 3=&22, 5=&'b', 4=&'c', 8=&'d');
$arr2=array('a'=&'aaa', 'b'=&'bbb', 'c'=&'ccc', 'd'=&'ddd', 'e'=&'eee');
一:for循环结构
for($i=0,$num=count($arr1);$i&$$i++){
&&& echo $arr1[$i].' ';
输出结果:a 22 c
for($i=0,$num=count($arr2);$i&$$i++){
&&& echo $arr2[$i].' ';
此段语句没有输出
循环1只打印出了数组$arr1的前两个单元,而循环2中的$arr2则什么都没打印出来。
原因在于for循环的时候是按照数字递增的,因此for只能访问键为数字的数组,例如循环1按照$i=0到$i=4去递增访问$arr1数组中键为0到4的单元,但该数组中的键依次为:1,3,5,4,8。而键值超过4的数组单元(5=&’b’,8=&’d’)不会被访问到,因为count($arr1)=5,故$i&5; 因此最后输出结果只有:a 22 c ;对于$arr2中所有的键都是字符,并非数字,所以循环2中没有输出。
二:foreach循环结构
foreach($arr1 as $key=&$value){
&&& echo $key.'=&'.$value.' ';
输出结果:1=&a 3=&22 5=&b 4=&c 8=&d
foreach($arr2 as $key=&$value){
&&& echo $key.'=&'.$value.' ';
输出结果:a=&aaa b=&bbb c=&ccc d=&ddd e=&eee
foreach循环结构是按照数组内部的指针去循环的,当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。因此下一次循环中将会得到下一个单元,不需要按照数组的键来遍历整个数组。这也是foreach与for的不同之处。当然,foreach只能用于数组和对象,并且由于 foreach 依赖内部数组指针,在循环中修改其值将可能导致意外的行为。
注:for每次循环都操作对应索引下的值,对于每个值的改变也都会反映到被遍历的对象中。而foreach每次操作一个单元,都是将其索引和值分别取到变量中,或者只取出值到一个变量中,然后单独操作放有索引和值的变量,不会影响到被遍历的对象本身。如果要在遍历过程中修改对象中的值,需要在声明是在变量前加&符号。例如:foreach($array as &$value)。
结论:如果一个数组是使用连续的数字最为数组单元的键,那么可以使用for循环结构。如果不确定数组的键或者数组的键有包含字符的,应当使用foreach循环结构。
阅读(...) 评论()}

我要回帖

更多关于 恶魔高校1 4季百度云 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信