javalong数组
1. java long[]数组转换成string[]数组的简便方法!急!!!
public class Longtest
{
public static void main(String[] args)
{
int count=10;
long[] a=new long[count];
for (int i=0;i<count;i++ )
{
a[i]=i;
}
String[] b=new String[count];
for (int i=0;i<count;i++)
{
b[i]=String.valueOf(a[i]);//这里把a中的每个值拿出来通过String类中的valueOf方法赋值给b字符串数组!
System.out.println(b[i]);
}
System.out.println(a[0]+a[1]+a[2]);
System.out.println(b[0]+b[1]+b[2]);
}
}
2. java怎么动态的往一个Long数组里加入Long元素
String[] abc = {"123", "234", "345"};
Long[] num = new Long[abc.length];
for (int idx = 0; idx < abc.length; idx++) {
num[idx] = Long.parseLong(abc[idx]);
}
3. java中如何定义数组
int[] anArray = null;这样赋值在java中是不允许的,会判定为语法错误,首先java只可以在class中声明成员变量,而不能对变量赋值,你只能在方法中(例如:main方法或者其他方法)对变量赋值。但是class中允许在声明变量的同时,为变量赋初始值。
也就是说 int anArray2 = new int[10]; 这样是允许的,这里的 new int[10] 是初始化操作(不是赋值操作)。
anArray = new int[10];
static int[] bArray = null;
public void setValue()
{anArray = new int[10]; }
public static void main(String[] args)
{anArray = new int[10]; }
java中使用 [][] 来定义二维数组 定义数组时也可同时初始化
下面是一些例子
float[][] numthree; //定义一个float类型的2维数组
numthree=new float[5][5]; //为它分配5行5列的空间大小
numthree[0][0]=1.1f; //通过下标索引去访问 1行1列=1.1
long[][] numfive=new long[5][]; //定义一个long类型的不规则数组
numfive[0]=new long[5]; //为第1行分配5列
double型的数组分配3行3列的空间同时赋值
double[][] numsix={{1.111D,2.222D,3.333D},{4.444D,5.555D,6.666D}};
int[][] numseven=new int[][]{{10,20,30},{40,50},{60}};
4. 为什么Java中的BitSet使用long数组做内部存储,而不使用int数组...
JDK选择long数组作为BitSet的内部存储结构是出于性能的考虑,因为BitSet提供and和or这种操作,需要对两个BitSet中的所有bit位做and或者or,实现的时候需要遍历所有的数组元素。使用long能够使得循环的次数降到最低,所以Java选择使用long数组作为BitSet的内部存储结构。
从数据在栈上的存储来说,使用long和byte基本是没有什么差别的,除了编译器强制地址对齐的时候,使用byte最多会浪费7个字节(强制按照8的倍数做地址对其),另外从内存读数组元素的时候,也是没有什么区别的,因为汇编指令有对不同长度数据的mov指令。所以说,JDK选择使用long数组作为BitSet的内部存储结构的根本原因就是在and和or的时候减少循环次数,提高性能。
作者:马天笑
链接:http://www.hu.com/question/21061816/answer/17047941
来源:知乎
当对单个bit进行操作时,两种存储方式不会有太大的区别:首先计算bit所在的word,然后对word中对应的bit进行操作。当同时对多个bit进行操作时,long数组存储方式可以带来较大的新能提升。例如我们进行BitSet中的and, or, xor操作时,要对整个bitset中的bit都进行操作,需要依次读出bitset中所有的word,如果是long数组存储,我们可以每次读入64个bit,而int数组存储时,只能每次读入32个bit。另外我们在查找bitset中下一个置为1的bit时,word首先会和0进行比较,如果word的值为0,则表示该word中没有为1的bit,可以忽略这个word,如果是long数组存储,可以一次跳过64个bit,如果是int数组存储时,一次只能跳过32个bit。
作者:王强
链接:http://www.hu.com/question/21061816/answer/60149117
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
5. java中将一个String[]数组怎样转换为Long[]数组
public static void main(String[] args) {
String[] strAry = new String[5];
Long[] longAry= new Long[strAry.length];
for(int i = 0, len = strAry.length; i < len; i++){
longAry[i] = new Long(strAry[i]);//这里最好用object,当然JDK 1.5以上直接用数字也可以
}
}