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以上直接用數字也可以
}
}