當前位置:首頁 » 存儲配置 » java數組存儲

java數組存儲

發布時間: 2022-09-02 03:13:27

1. 在java中,數組中的元素應按照什麼順序進行存儲和編號

private final int LEN = 8; //數組的默認大小
private Strategy strategy; //數據元素比較策略

private int size; //線性表中數據元素的個數

private Object[] elements; //數據元素數組

public ListArray() {

this(new DefaultStrategy());
}

public ListArray(Strategy strategy){

this.strategy = strategy;
size = 0;

elements = new Object[LEN];

}

//返回線性表的大小,即數據元素的個數。

public int getSize() {

return size;
}

//如果線性表為空返回true,否則返回false。

public boolean isEmpty() {

return size==0;
}

//判斷線性表是否包含數據元素e

public boolean contains(Object e) {

for (int i=0; i
if (strategy.equal(e,elements[i])) return true;

return false;

}

//返回數據元素e在線性表中的序號

public int indexOf(Object e) {

for (int i=0; i
if (strategy.equal(e,elements[i])) return i;

return -1;

}

//將數據元素e插入到線性表中i號位置

public void insert(int i, Object e) throws OutOfBoundaryException {

if (i<0||i>size)
throw new OutOfBoundaryException("錯誤,指定的插入序號越界。");

if (size >= elements.length)

expandSpace();

for (int j=size; j>i; j--)

elements[j] = elements[j-1];

elements[i] = e;

size++;

return;

}

private void expandSpace(){

Object[] a = new Object[elements.length*2];
for (int i=0; i

a[i] = elements[i];

elements = a;

}

//將數據元素e插入到元素obj之前

public boolean insertBefore(Object obj, Object e) {

int i = indexOf(obj);
if (i<0) return false;

insert(i,e);

return true;

}

//將數據元素e插入到元素obj之後
public boolean insertAfter(Object obj, Object e) {

int i = indexOf(obj);

if (i<0) return false;

insert(i+1,e);

return true;

}

//刪除線性表中序號為i的元素,並返回之

public Object remove(int i) throws OutOfBoundaryException {
if (i<0||i>=size)

throw new OutOfBoundaryException("錯誤,指定的刪除序號越界。");

Object obj = elements[i];

for (int j=i; j
elements[j] = elements[j+1];

elements[--size] = null;

return obj;

}

//刪除線性表中第一個與e相同的元素

public boolean remove(Object e) {

int i = indexOf(e);
if (i<0) return false;

remove(i);

return true;

}

//替換線性表中序號為i的數據元素為e,返回原數據元素

public Object replace(int i, Object e) throws OutOfBoundaryException {

if (i<0||i>=size)
throw new OutOfBoundaryException("錯誤,指定的序號越界。");

Object obj = elements[i];

elements[i] = e;

return obj;

}

//返回線性表中序號為i的數據元素
public Object get(int i) throws OutOfBoundaryException {

if (i<0||i>=size)
throw new OutOfBoundaryException("錯誤,指定的序號越界。");

return elements[i];

}

}

2. Java數組的使用

本文介紹了在java開發中經常使用的數組,以及數組的使用方法,注意事項。



一.什麼是數組


1.數組:數組即是一堆邏輯上無序的元素的序列,用來存儲多個相同類型的數據,數組可以看做是一個集合,其內部元素存儲在一個連續的內存塊當中,並通過索引(即數組中元素的下標)來訪問


2.特點:


A.數組中的元素數據類型都相同;


B.各元素在內存中的存儲是有先後順序的;


C.表示數組元素的時候,需要使用數組名和該元素在數組中的位置來表示;


3.分類:


最簡單的形式是一維數組,即數組中直接存儲元素,如{1,2,3,4};其次是二維數組,在二維數組中的元素都是一維數組,如{{123},{456},{789}};再次意義上可以有更多維的數組。


二.Java中的數組


(以下示例中皆以整型一維數組intarray[]為例)


1.特點:


java中的數組滿足數組的所有含義和特點;


2.聲明數組:


在java中,聲明數組時有兩種情況:有大小,或者無大小,同時在聲明數組時,需要聲明數組的數據類型,以及數組的維度,聲明方式分為以下幾種:


a.intarray[]={1,2,3};直接在聲明數組的同時進行賦值;


b.intarray[];聲明數組未進行賦值操作;


c.Intarray[]=newint[10];聲明數組時定義了數組的大小;


3.數組長度:


使用數組的length屬性,雲南java培訓http://www.kmbdqn.cn/認為可已查看數組的大小:


Intlength=array.lenth;


4.遍歷數組:


在開發中,根據數組的特性,經常會通過循環來遍歷數組,如for循環或forEach循環


3. Java數組在內存中是如何存放的

數組是一種引用數據類型,數組引用變數只是一個引用,數組元素和數組變數在內存里是分開存放的.
實際的數組元素被存儲在堆(heap)內存中;數組引用變數是一個引用類型的變數,被存儲在棧(stack)內存中.

4. java怎麼把數字存放到數組里去

1、如果數字個數是確定的,放到數組里可以,java中數組的初始化必須定義其長度

2、如果數字個數是不確定的,那麼建議放到list集合中去,因為集合操作相比數組更加的方便靈活

3、首先集合不需要限制於存儲長度,第二任何類型的數據list都能夠通過list.add(object)增加進去,因此推薦存放到list集合中,而且取值也是很方便的

publicclassDemo
{
publicstaticvoidmain(String[]args)
{
ListnumList=newArrayList();
intnum=10;
numList.add(num);
//這里只輸入一個數,但是也用循環寫出來吧,你可以拓展到添加多個數的list中去
for(inti=0;i<numList.size();i++)
{
//將每個數輸出即可
System.out.println(numList.get(i));
}
}
}

5. Java數組是存儲在內存中的什麼地方

因為我也不清楚你理解的內存指啥,說我的理解,猜測一下,但願符合你的理解:
對程序而言,內存分為:
a、靜態區塊或叫全局區塊,指程序載入的時候就分配的固定存儲區;
b、棧內存,代碼塊執行的時候動態分配的內存塊,代碼運行完後,操作系統或運行平台負責自動回收這部分使用的內存。
c、堆內存塊,由操作系統提供api程序自由分配管理的內存塊。
java的內存管理機制,我個人認為是黑盒的,寫java也很少有人去關心,但是如果看虛擬機的實現源碼還是能知道的。(樓主懂c由興趣自己看)。那麼從逆向工程的角度我們可以猜測到:
靜態類,靜態變數,存儲在,靜態區塊中。
類本身代碼需要時再載入到內存中,java的動態代理實現的根本。既然是動態載入肯定是在堆中,不過載入進來的類代碼可能永不會銷毀(虛擬機運行區間內,可以加快運行平台的處理速度,java屬於半編譯半解釋的一門語言,要解釋執行的是預先編譯好的指令,就是class類文件)。
我們創建的任何對象,時間是隨機的,創建的時候才會分配內存,必然在堆上。虛擬機的垃圾回收機制要管理的剛好是這部分內存。
類中的方法,或靜態代碼塊必定運行在占上,代碼運行完,內存立即回收。此處有個例外,不同於c語言或操作系統實現。在方法中返回的任何對象:c需要動態分配存儲空間,兵自行管理,或者申明為全局局部靜態存儲,代碼運行完,對象才能保留下來。java可以直接保留下來。說明虛擬機自動給我們申請了動態內存保存對象。此處分配的內存也需要垃圾回收機制管理。沒門語言都有原始類型,方法或函數中返回的原始類型不需要從堆上分配內存,直接復制給接收變數,或代碼運行的形參所分配的空間中即可。
從操作系統理解,內存分為內核使用的內存與程序使用的內存,java運行在虛擬機上,虛擬機運行在操作系統上,內核內存屬於操作系統自用內存,由操作系統負責管理,運用程序不能直接管理分配內核內存。應用程序可管理的是分配給自己的運行空間。因此java使用內存屬於應用程序內存。內核內存管理方式windows與unix實現管理方式不一樣,最大差別windows的每一個程序,內核需要使用掉一部分地址空間,餘下的留給應用程序。如32位系統,總共可以使用的地址空間是4G內核要用掉其中1G或者2G。但是unix實現的系統應用程序可以直接使用4G地址空間。有興趣請參考操作系統內核相關書籍。

6. Java數組中存儲的是引用還是值

跟你說一句話你應該就明白了:
JAVA中值類型的只有short,char,byte,int,long,double,float,boolean八大基本類型,其他的所有類型都是引用類型。

7. 在java中如何把位元組數組存儲到資料庫

保存位元組數組到資料庫分兩步:
第一、利用FileInputStream.read(byte[])方法把內容讀取到byte[]數組中,比如圖片是由二進制數組成的,就可以定義為一個位元組數組。
第二、在資料庫中對應記錄欄位應該設置為blob類型,這樣就能夠順利保存了
事例代碼如下:
PreparedStatement stmt = connection.generatePreparedStatement("INSERT INTO ... ");
stmt.setBytes(1, yourByteArray);

其中,yourByteArray是你讀出來的字元數組。

8. 在java中如何將數組里的數據存入資料庫呢

保存位元組數組到資料庫分兩步:
第一、利用FileInputStream.read(byte[])方法把內容讀取到byte[]數組中,比如圖片是由二進制數組成的,就可以定義為一個位元組數組。
第二、在資料庫中對應記錄欄位應該設置為blob類型,這樣就能夠順利保存了
事例代碼如下:
PreparedStatement stmt = connection.generatePreparedStatement("INSERT INTO ... ");
stmt.setBytes(1, yourByteArray);

其中,yourByteArray是你讀出來的字元數組。

9. java中的數組存在哪

最後那個列印是bb那個方法裡面調換了值x=a[0];a[0]=b[0];b[0]=x;,先是100等於x,然後是吧200賦值給了a[0],接下來是吧x=100賦給了b[0],所以此時的a[0]=200,b[0]=100
數組分為堆上數組和棧上數組,x=a[0];x在堆上,a[0]在棧上.

熱點內容
安卓手機如何繞過緩存軟體 發布:2025-03-16 22:35:16 瀏覽:241
c語言求職 發布:2025-03-16 22:34:23 瀏覽:429
在線教育培訓源碼 發布:2025-03-16 22:31:57 瀏覽:233
反編譯vb工具 發布:2025-03-16 22:27:04 瀏覽:353
安卓流程為什麼越來越多 發布:2025-03-16 22:26:50 瀏覽:933
五軸編程模型 發布:2025-03-16 22:17:48 瀏覽:181
linuxc函數庫 發布:2025-03-16 22:03:33 瀏覽:921
iphone最新版系統從哪裡改密碼 發布:2025-03-16 21:56:19 瀏覽:596
python的execute 發布:2025-03-16 21:40:24 瀏覽:767
今天的訪問量就靠你了 發布:2025-03-16 21:39:35 瀏覽:430