❶ 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]; // 找出排序后回中答间的数组值
}
}