Java集合框架 大量資料處理操作練習題

2021-09-02 15:22:03 字數 3577 閱讀 6915

1、用hashtable和hashmap測試插入是10萬個資料的速度

hashtablehashtable=new hashtable<>();

long l = system.currenttimemillis();//起始時間

object o=new object();

random random=new random();

for (int i = 0; i < 100000; i++)

long l1 = system.currenttimemillis();//截止時間

long l11 = l1 - l;//執行時間

system.out.print("hashtable插入資料的時間為" + l11 + " ");

long s = system.currenttimemillis();//起始時間

object o1=new object();

hashmaphashmap=new hashmap();

random random1=new random();

for(int i=0;i<100000;i++)

long s1 = system.currenttimemillis();//截止時間

long s11 = s1 - s;//執行時間

system.out.print("hashmap插入資料的時間為" + s11 + " ");

2、 對十萬個隨機數,統計數字重複的次數

random random=new random();

arraylistlist=new arraylist<>();

for(int i=0;i<100000;i++)

//統計出現的次數 hashmap->key:資料本身 value->資料出現的次數

hashmaphashmap=new hashmap<>();

iteratoriterator=list.iterator();

while (iterator.hasnext())else

}//列印資料

iterator> itr = hashmap.entryset().iterator();

while(itr.hasnext())

system.out.println();

3、10萬資料找出第乙個重複的資料並列印

hashmaphashmap = new hashmap<>();

random random1 = new random();

arraylistlist=new arraylist<>();

for (int i = 0; i < 100000; i++)

hashmaphashmap=new hashmap<>();

iteratoriterator=list.iterator();

while(iterator.hasnext())

else

}

4、 10萬資料找出出現次數最多的資料並列印

hashmaphashmap = new hashmap<>();

random random1 = new random();

arraylistlist=new arraylist<>();

for(int i = 0;i < 100000;i++)

// list.add(1);

// list.add(3);

// list.add(4);

// list.add(1);

// list.add(2);

// list.add(1);

// list.add(3);

hashmaphashmap=new hashmap<>();

iteratoriterator=list.iterator();

while(iterator.hasnext())

else

}//以鍵值對的形式遍歷hashmap

iterator> iterator1=hashmap.entryset().iterator();

int count=0;//統計重複次數最多的次數

int data=0;//統計重複次數最多的數字

while (iterator1.hasnext())

}system.out.println(data+" "+count);

5、通過對arraylist和linkedlist對10萬個資料分別進行插入、獲取操作,比較不同集合操作耗時

arraylist list1 = new arraylist();

long l = system.currenttimemillis();//起始時間

random random = new random();

for (int i = 0; i < 100000; i++)

long l1 = system.currenttimemillis();//截止時間

long l11 = l1 - l;//執行時間

system.out.print("arraylist插入資料的時間為" + l11 + " ");

long t = system.currenttimemillis();

for (int i = 0; i < 100000; i++)

long t1 = system.currenttimemillis();

long t11 = t1 - t;

system.out.println("arraylist獲取資料的時間為" + t11);

linkedlist list2 = new linkedlist();

long m = system.currenttimemillis();

for (int j = 0; j < 100000; j++)

long m1 = system.currenttimemillis();

long m11 = m1 - m;

system.out.print("linkedlist插入資料的時間為" + m11 + " ");

long n = system.currenttimemillis();

for (int j = 0; j < 100000; j++)

long n1 = system.currenttimemillis();

long n11= n1 - n;

system.out.println("linkedlist獲取資料的時間為" + n11);

資料處理(集合)

int 231 231 1 2147483648 2147483647 float 2128 2128 1 3.40e 38 3.40e 38 double 21024 21024 1 1.79e 308 1.79e 308 bigdecimal bg new bigdecimal s setsca...

大量資料處理問題

1.根據快速排序劃分的思想 1 遞迴對所有資料分成 a,b b b,d 兩個區間,b,d 區間內的數都是大於 a,b 區間內的數 2 對 b,d 重複 1 操作,直到最右邊的區間個數小於100個。注意 a,b 區間不用劃分 3 返回上乙個區間,並返回此區間的數字數目。接著方法仍然是對上一區間的左邊進...

mysql 大量資料處理問題

一 大量資料儲存問題解決方法 分割槽 分表 原則 多利用點記憶體,減輕磁碟io負載,因為io往往是資料庫伺服器的瓶頸 區別 1,實現方式上 mysql的分表是真正的分表,一張表分成很多表後,每乙個小表都是完正的一張表 分割槽不一樣,一張大表進行分割槽後,他還是一張表,不會變成二張表,但是他存放資料的...