❶ java中,兩個數組a[],b[],a=b後,a中值變b也會變了嗎
會改變. 因為數組a=數組b 只是淺層復制,
代碼如下
importjava.util.Arrays;
publicclassArrayDemo{
publicstaticvoidmain(String[]args){
int[]b={1,3,5,7,9};
int[]a=b;
a[0]=12;//a數組的元回素改變了答
System.out.println(Arrays.toString(b));//b數組的元素跟著改變
//因為a=b是淺層復制,只是把數組的引用指向了a
int[]x={6,8};
int[]y=newint[x.length];
System.array(x,0,y,0,x.length);//系統復制數組,深層復制
x[0]=8;
System.out.println(Arrays.toString(y));//x數組改變,不會影響y數組
}
}
輸出
[12,3,5,7,9]
[6,8]
❷ 怎麼比較兩個數組中的元素(java)
比較的方法需要你自己寫,最好是些在那個需要進行比較的類中,也就是你自己定你想要以他的什麼屬性來作為比較標准。
public class ComparePerson {
public static void main(String []args)
{
Person p1[]=new Person[3];
Person p2[]=new Person[3];
for(int i=0;i<3;i++)
{
p1[i]=new Person(("person"+i),(i+20));
p2[i]=new Person(("person"+i),(i+20));
//p2[i]=new Person("person2",(i+10)); 這樣寫以後下面列印出來的值為false
}
//System.out.println("這兩群人的年齡是否對應相同? "+compare(p1,p2));
System.out.println("這兩群人的姓名是否對應相同? "+compare(p1,p2));
}
public static boolean compare(Person []p1, Person[]p2)
{
for(int i=0;i<p1.length;i++)
{
if(p1[i].compareTo(p2[i])!=0)
{
return false;
}
}
return true;
}
}
class Person
{
private int age;
private String name;
public Person(String name, int age)
{
this.name =name;
this.age = age;
}
public int getAge()
{
return age;
}
public String getName()
{
return name;
}
/*public int compareTo(Person p)
{
//這里我假設以年齡作為標准來比較
if(age>p.getAge())
{
return 1;
} else if(age < p.getAge())
{
return -1;
} else return 0;
}*/
public int compareTo(Person p)
{
//這里我假設以姓名作為標准來比較,調用字元串比較的方法;
return name.compareTo(p.getName());
}
}
❸ java中怎麼給二位數組賦值
你初始化得到的 info = {
{"評分項","ele"},
{"分值范圍","fanwei"}
};如果要得到{
{"評分項","ele"},
{"分值范圍","fanwei"} ,
{"公司內1","one"},
{"公司2","two"},
{"公司3","three"},
……
};像這樣的容,按你說list查出來只是二維數組中第三項開始以後的每個元素(每個String數組)的下標為0的值,你想要info變成這樣的話,可以選擇數組復制,將初始化的info復制到一個新的二維數組,長度為2+list的長度,再將list查出來的數據對二維數組賦值。這個是我的想法。
❹ java 如何求多個數的中位數 具體!!!
package com.test;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
System.out.println(zhongweishu(7, 4, 8));
}
// 可換為多個數,如參數為:int a,int b,int c,int d,int e
public static int zhongweishu(int a, int b, int c){
int[] nums = {a,b,c};
Arrays.sort(nums); // 數組從內小到大排序
return nums[nums.length/2]; // 找出排序後中容間的數組值
}
}
❺ java 兩個list數組 其中一個數組包含另一數組所有值,怎麼對比
你想要的是不是下面的操作方式:
Listlist1=newArrayList();
list1.add("1111");
list1.add("2222");
list1.add("3333");
Listlist2=newArrayList();
list2.add("3333");
list2.add("4444");
list2.add("5555");
//並集
//list1.addAll(list2);
//交集
//list1.retainAll(list2);
//差集回
//list1.removeAll(list2);
//無重復答並集
list2.removeAll(list1);
list1.addAll(list2);
❻ java中怎麼取兩個數組中不相同的數據
public static <T> List<T> compare(T[] t1, T[] t2) {
List<T> list1 = Arrays.asList(t1);
List<T> list2 = new ArrayList<T>();
for (T t : t2) {
if (!list1.contains(t)) {
list2.add(t);
}
}
return list2;
}
compare(new Integer[] { 1, 2, 3 }, new Integer[] {
1, 2, 3, 4 })
❼ java2億個隨機生成的無序整數,如何找到其中位數
因為這2億個數都是無序整數,所以要先用數組排序,再取中間兩個數的平均值。
❽ 用Java求三個數的中位數
package com.test;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
System.out.println(zhongweishu(7, 4, 8));
}
// 可換為多個數,如參數為:int a,int b,int c,int d,int e
public static int zhongweishu(int a, int b, int c){
int[] nums = {a,b,c};
Arrays.sort(nums); // 數組從小到大排序
return nums[nums.length/2]; // 找出排序後回中答間的數組值
}
}