當前位置:首頁 » 網頁前端 » 前端遍歷2個數組取其中相等的值
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端遍歷2個數組取其中相等的值

發布時間: 2022-05-14 17:18:27

1. 兩個數組取相同元素,能有單層循環的實現么

Arrays.sort(array_1);
Arrays.sort(array_2);
int len = array_1.length
for (int i = 0; i < len; i++)
{
if (Arrays.binarySearch(array_2, array_1[i]) != -1)
print array_1[i];
}

1) 排序
2)遍歷任意數組(如果是短的效果最好,我這里沒有做判斷)
3)把一個數組的元素在另外一個數組中2分查找,找到表示交集。

2. jsp遍歷2個數組後比較出相等的部分然後輸出

可以用兩層for循環

3. js中怎麼把數組中重復的數據取出來

需要准備的材料分別是:電腦、html編輯器、瀏覽器。

1、首先,打開html編輯器,新建html文件,例如:index.html。

4. 有兩組數據,怎麼樣篩選出這兩組中相同的數據 JAVA FOR循環

先將兩個表分別放入一個EXCEL文檔中的二個表中,再向每個表的第1行插入一行,寫上二個表的數據標題:比第一個表寫上姓名,身份證號,卡號,第二個寫上姓名,單位名稱,地址。

接下入選擇菜單欄中的:數據欄->導入外總數據中的「新建資料庫查詢」欄目

然後在新建資料庫查詢窗體中雙擊選擇「新數據源」

在選項中下面有三項,第一項你可以隨便寫個名稱,第二項選擇是資料庫驅動,在這里你先點擊向下框,選擇*.XLS文件類型驅動,然後點連接
最後點確定。

接下來你再選擇「新建數據查詢」,打開剛才你填寫的名稱,把二個表分別加入到旁邊空白區,接著點「下一步」,這時彈出一個對話框,你點確定,這時進入了查詢窗口,下面接著的你可以看到你的二個表已在查詢窗口裡,接下來你就把兩個數據標題相同做一個連接,方法是,比如將第一個表姓名標題拖入第二個表的姓名標題上。
這時你就可以看到你要的數據已經顯示出來了,接下來的就是反回EXCEL,怎麼做呢?選擇這個查詢窗體菜單欄中的「文件」欄—>將數據返回 Microsoft office EXCEL,接下來回到EXCEL有一個提示,你不管它,直接點確定就夠了。

注意,用這個功能時,你的EXCEL必須裝有這個查詢功能,要不然EXCEL會提醒你需要要安裝的。

這個功能,雖然有點復雜,但對付數據比較多而且比較復雜的表很管用,而且不用編公式

哎,打字蠻累的,第一次在網路上回答這么長的東西。

5. for循環嵌套遍歷2維數組找出其中某一個值

int a[3][3] {2,4,5,5,0,1,3,6,8}

for(i=0,i++,i<3)
{
for(j=0,j++,j<3)
if a[i][j] == 0
{你得操作}

}

6. java如何在遍歷兩個數組後,來判斷數組的每個元素內容是否一樣

  • 思路1: (好理解, 但效率較低,特別是數組較大時)

數組比較每個元素是否相等:

1. 如果數組為null 或者數組的元素個數不相等 , 那麼返回false

2. 先把數組排序, 然後逐一比較, 如果有一個元素不相等就返回false. 否則返回true

  • 思路2: (代碼稍微多點,但是效率高點)

前面部分和思路1 都一樣

只是第2步, 為了省去排序的性能和時間的浪費, 添加兩個boolean數組來對應之前的數組,用於標記哪些數字已經使用過了,下次就不要使用了. 雖然代碼更多,但是當數組比較長時. 這種方法效率還可以

  • 思路3: (只算一種思路, 也能實現,就不給出具體代碼了)

使用集合HashMap(K,V) k存放元素,v存放出現的次數

思路1 參考代碼

importjava.util.Arrays;

publicclassArraysTest{
publicstaticvoidmain(String[]args){
int[]ary1={2,4,0,8,6};
int[]ary2={0,6,8,4,2};
int[]ary3={0,0,8,4,2};


booleanb=compareAry(ary1,ary2);
System.out.println(b?"ary1和ary2數組元素都相等":"ary1和ary2數組元素不相等");

booleanb1=compareAry(ary2,ary3);
System.out.println(b1?"ary2和ary3數組元素都相等":"ary2和ary3數組元素不相等");

}

publicstaticbooleancompareAry(int[]ary1,int[]ary2){
//如果數組為null或者數組的元素個數不相等,直接返回false
if(ary1==null||ary2==null||ary1.length!=ary2.length){
returnfalse;
}
if(ary1==ary2){//如果兩個數組哈希值一樣,那麼直接返回true,就不必去循環比較了
returntrue;
}
/*
*先排序,再逐一比較
*/

//為了排序不會影響原始的數組順序,所以把2個數組復制出來
int[]t1=newint[ary1.length];
System.array(ary1,0,t1,0,ary1.length);

int[]t2=newint[ary2.length];
System.array(ary2,0,t2,0,ary2.length);

//排序
Arrays.sort(t1);
Arrays.sort(t2);
for(inti=0;i<t1.length;i++){
if(t1[i]!=t2[i]){//只要有一個元素不相等,直接返回false
returnfalse;
}
}
returntrue;//前面都沒有返回,說明元素都相等,這里就返回true
}
}

思路二

publicclassArraysDemo{
publicstaticvoidmain(String[]args){
int[]ary1={2,4,0,8,6};
int[]ary2={0,6,8,4,2};
int[]ary3={0,0,8,4,2};

booleanb=compareAry(ary1,ary2);
System.out.println(b?"ary1和ary2數組元素都相等":"ary1和ary2數組元素不相等");

booleanb1=compareAry(ary2,ary3);
System.out.println(b1?"ary2和ary3數組元素都相等":"ary2和ary3數組元素不相等");

}

publicstaticbooleancompareAry(int[]ary1,int[]ary2){
//如果數組為null或者數組的元素個數不相等,直接返回false
if(ary1==null||ary2==null||ary1.length!=ary2.length){
returnfalse;
}
if(ary1==ary2){//如果兩個數組哈希值一樣,那麼直接返回true,就不必去循環比較了
returntrue;
}
boolean[]b1=newboolean[ary1.length];
boolean[]b2=newboolean[ary1.length];
for(inti=0;i<b1.length;i++){
booleanflag=false;//flag標記表示是否查找到相同元素,初始狀態為false
if(b1[i]){//如果b1[i]為true表示b1[i]已結比找到了相同的元素了,所以跳過該元素
continue;
}
inttemp=ary1[i];
for(intj=0;j<b2.length;j++){
if(b2[j]){//如果b2[j]為true表示b2[j]已結比找到了相同的元素了,所以跳過該元素
continue;
}

if(temp==ary2[j]){//如果找到了相同的元素
flag=true;//找到了相同的元素就設置標記為true
b1[i]=true;//把b1[i]和b2[j]都設置為true
b2[j]=true;
}
}
if(flag==false){//也可以寫成if(!flag)表示沒有找到相同元素
returnfalse;//直接返回false
}
}

returntrue;//經歷上面重重艱難險阻,都沒有返回,那麼說明兩數組的元素內容相同了,返回true
}
}
  • 拓展

注意,關於null這個小問題,多寫點
每個人理解題目不一樣, 題目要求數組每個元素相同,所以,我覺得數組就不能為null了.但是元素個數可以為0

所以 代碼如下

.....
//如果數組為null或者數組的元素個數不相等,直接返回false
if(ary1==null||ary2==null||ary1.length!=ary2.length){
returnfalse;
}

//如果兩個數組哈希值一樣,那麼直接返回true,就不必去循環比較了
if(ary1==ary2){
returntrue;
}
....

當然,有的人認為,兩個數組都是null 也可以返回true, 寫法如下

......	
//null也是等於null的
if(ary1==ary2){
returntrue;
}
if(ary1!=null&&ary2!=null){
if(ary1.length!=ary2.length){//長度不一樣,返回false
returnfalse;
}
}else{
returnfalse;//1個數組是null,1個數組不是null,也返回false
}
.....

以上 ~拋磚引玉!

7. js將兩個不同數組相同值作條件遍歷可以嗎

JS判斷一個數組中是否有重復值的三種方法 方法一: //將數組轉換成字元串,遍歷數組,移除一個元素後若還能找到該元素,那麼這個元素就是重復的var s = ary.join(",")+",";for(var i=0;i-1) { alert(

8. C++,找出一個二維數組中相等的值,並輸出 如int a[5][10];求高手給出遍歷方法

直接給你代碼吧!

#include <stdio.h>
int a[3][5] = {
{1,2,3 ,4,5},
{2,4,5, 1,3},
{1,3,5,7,9}
};
struct mark {
int row;
int col;
int tag;
};
struct mark map[3][5];
void find()
{
int i, j, ic, jc;
int ti, tj;
for(i=0; i<3; i++) {
for(j=0; j<5; j++) {
if (map[i][j].row!=-1 || map[i][j].col!=-1) continue;
ti = i;
tj = j;
ic = i;
jc = j+1;
if (jc>=5) {
ic++;
jc=0;
}
goto cmp;
for(ic = i; ic<3; ic++) {
for(jc= 0; jc<5; jc++) {
cmp:
if (a[i][j]== a[ic][jc]) {
map[ic][jc].row =ti;
map[ic][jc].col = tj;
ti = ic;
tj = jc;
}
}
}
}
}
}
int main()
{
int i;
int j;
int ic, jc;
int t1, t2;
for(i=0; i<3;i++) {
for(j=0; j<5; j++) {
map[i][j].row = -1;
map[i][j].col = -1;
}
}
find();
for(i=0; i<3;i++) {
for(j=0; j<5; j++) {
printf("(%d, %d) ", map[i][j].row, map[i][j].col);
}
printf("\n");
}
for(i=2; i>=0; i--) {
for(j=4; j>=0; j--) {
if (map[i][j].tag ==0) {
map[i][j].tag =1;
ic = map[i][j].row;
jc = map[i][j].col;
printf("%d: (%d,%d) ->", a[i][j], i, j);
while(ic != -1 && jc != -1) {
printf("(%d,%d) ->", ic, jc);
map[ic][jc].tag =1;
t1 = map[ic][jc].row;
t2 = map[ic][jc].col;
ic = t1;
jc = t2;
}
printf("end\n");
}
}
}
return 0;
}
運行結果:
(-1, -1) (-1, -1) (-1, -1) (-1, -1) (-1, -1)
(0, 1) (0, 3) (0, 4) (0, 0) (0, 2)
(1, 3) (1, 4) (1, 2) (-1, -1) (-1, -1)
9: (2,4) ->end
7: (2,3) ->end
5: (2,2) ->(1,2) ->(0,4) ->end
3: (2,1) ->(1,4) ->(0,2) ->end
1: (2,0) ->(1,3) ->(0,0) ->end
4: (1,1) ->(0,3) ->end
2: (1,0) ->(0,1) ->end

9. java編程 只遍歷一次 將兩個int[]數組中相同的元素 列印出來

因為你的3個if語句的正確關系應該是if……else if……的關系。

比如兩個數組排序後分別是{1,4}和{1,3},那麼你執行第一個if後則 i 和 j 都變成了1,執行完第二個if後則 j 變成了2,那麼要執行第三個if的時候 j 就過界了,就會報錯

importjava.util.Arrays;


publicclassArray1{
publicstaticvoidmain(String[]args){
int[]array={1,1,3,5,2,3};
int[]array1={2,3,1,4,5,8};
Arrays.sort(array);
Arrays.sort(array1);

inti=0;
intj=0;

while((i<array.length)&&(j<array1.length)){
if(array[i]==array1[j]){
System.out.println(array[i]);
i++;
j++;
}elseif(array[i]>array1[j]){
j++;
}elseif(array[i]<array1[j]){
i++;
}
}
}
}