『壹』 java:如何封裝集合
對於一般的成員變數,對其提供簡單的getter/setter封裝即可。而對於一個集合類,不能夠這樣做。 對於一個簡單的搏氏成員變數,可孝畢以這樣:
class Athlete {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// ......
而如果是一個Set/List/Map或數組,應該:
[1]初始化這個集合類;
[2]提供對單個元素的add/remove;
[3]提供加入另一個集合的方法。如果是基於此初巧銀芹始化,則先保證當前集合無元素;
[4]對於getter方法,應該返回該集合的只讀試圖;
[5]提供當前集合size。
public class Game {
private Set<Athlete> players = new HashSet<Athlete>();// 1
public void addPlayer(Athlete one) {// 2
players.add(one);
}
public void removePlayer(Athlete one) {// 2
players.remove(one);
}
public void addPlayers(Set<Athlete> set) {// 3
Iterator<Athlete> iter = set.iterator();
while (iter.hasNext())
addPlayer(iter.next());
}
public void initializaPlayers(Set<Athlete> set) {// 3
if (getAttendNumbers() > 0)
players.clear();
players.addAll(set);
}
public Set<Athlete> getAllPlayers() {// 4
return Collections.unmodifiableSet(players);
}
public int getAttendNumbers() {// 5
return players.size();
}
『貳』 什麼是Java的封裝類
封裝類就是人家已經寫好實現,你只要負責調用就可以
比如排序就可以直接調用Collections.sort(Collection
coll)方法,沒必要再自己寫
『叄』 java集合是什麼
Java集合是什麼:
Java 中的集合類庫可以幫助我們在程序設計中實現傳統的數據結構。
Java的集合類是一個用來存放對象的容器,有以下特點:
1、Java集合只能存放對象。加入添加了一個基本數據類型,會被自動裝箱後存入集合。
2、集合存放的是多個對象的引用,對象本身是在堆內存中的。
3、集合可以存放不同類型,不限數量的數據類型。
集合分三種:1、Set 2 、List 3、Map,下面進行具體介紹。
主要內容:
1)手寫ArrayList
2)手寫單鏈表
3)手寫LinkedList
4)手寫HashMap
5)手寫HashSet
6)最新並發集合類
學習目標:
1. 掌握手寫ArrayList
2. 掌握手寫單鏈表
3. 掌握手寫LinkedList
4. 掌握手寫HashMap
5. 掌握手寫HashSet
6. 理解最新並發集合類底層原理
視頻課程小結:
01_集合提升訓練_手寫ArrayList_get_size_isEmpty_自定義異常
02_集合提升訓練_手寫ArrayList_構造方法_add
03_集合提升訓練_手寫ArrayList_toString_iterator
04_集合提升循環_手寫單鏈表_get
05_集合提升訓練_手寫單鏈表_add_remove_toString
06_集合提升訓練_手寫LinkedList
07_集合提升訓練_手寫LinkedList_添加內存分配圖
08_集合提升訓練_HashMap的原理和代碼准備
09_集合提升訓練_手寫HashMap的put
10_集合提升訓練_手寫HashMap的get_toString
11_集合提升訓練_手寫HashSet
12_集合提升訓練_新一代並發集合類
『肆』 java中的封裝類
java編程思想中其實就提到了,還是做了一下總結:
1.基本類型只能按值傳遞,而每個基本類型對應的封裝類是按引用傳遞的。
2.從性能上說java中的基本類型是在堆棧上創建的,而所有的對象類型都是在堆上創建的,(對象的引用在堆棧上創建)。比如
Integer i=new Integer(10); 其中new Integer()是在堆上創建的,而他的引用Integer i是在堆棧上。 封裝類的出現,是為了更方便的使用一些基本類型不具備的方法,比如valueOf(),toString()等等。還有你如果想傳遞一個int對象的引用,而不是值,那隻能用封裝類。
在堆棧上分配內存的調用效率和在堆上分配內存的效率差太多了。雖然在堆棧上分配內存效率高,不過在堆棧上分配內存有內存泄露的問題。(這是一個平庸程序員基本解決不了的問題...)java用了一種很天才的方法提高了在堆上分配內存的效率,盡管如此,java還是慢。他不太可能達到向c++那麼快,盡管他一直在承諾總有一天虛擬機會和機器碼速度一樣快。
JDK5.0開始可以自動封包了 ,也就是基本數據可以自動封裝成封裝類,基本數據類型的好處就是速度快(不涉及到對象的構造和回收),封裝類的目的主要是更好的處理數據之間的轉換,方法很多,用起來也方便。
當然,封裝類型的傳遞是引用傳遞,比如
Integer a = new Integer(1);
表示一個Integer類型的引用a引用了一塊內存,這塊內存中的數據是1; 而a中所存的則是這塊內存的引用(地址),把a傳給別的方法或對象時,則是把a的引用傳遞過去了。
類型之間的轉換:
String b = "123456";
int c = Integer.parseInt(b);
表示把字元串123456轉成整型數字,其中parseInt是靜態方法,可以直接使用
還有一點,在某些場合,需要用到封裝類,比如一個集合List,它只能往裡面添加對象,也就是Object,那麼直接存數字肯定是不行 的,則需要將數字封裝成封裝類型對象再存到該List中,如
List list = new ArrayList();
list.add(new Integer(1));
list.add(new Integer(2));
list.add(new Integer(3));
list.add(new Integer(4));
JDK5.0以後可以自動封包,所以可以簡寫成
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
『伍』 Java中類的封裝是如何實現的
封裝是穗談將對象的信息隱藏在對象內部,禁止外部程序直接訪問對象內部的屬性和方法。x0dx0ajava封裝類通過三個步驟實現:x0dx0ax0dx0a(1)修猜滲碰改屬性的可見性,限制訪問。x0dx0a(喊游2)設置屬性的讀取方法。x0dx0a(3)在讀取屬性的方法中,添加對屬性讀取的限制。
『陸』 Java操作文本封裝類
import java io BufferedReader;
import java io BufferedWriter;
import java io File;
import java io FileReader;
import java io FileWriter;
import java io IOException;
import java util ArrayList;
import java util List;
或液/**
* 用於對記事本的操作
*
* @author 沙琪瑪
*
*/
public class NoteOperate {
// txt文件路徑
private String filePath;
/**
* 構虛辯造函數
*
* @param filePath
* 文本文件全路徑
*/
public NoteOperate(String filePath) {
this filePath = filePath;
}
/**
* 構造函數
*
* @param file
* 需要讀取的文本文件
*/
public NoteOperate(File file) {
this filePath = file getPath();
}
/**
* 判斷文本文件是否存在
*
* @return 存在返回true 否則返回false
*/
public boolean exists() {
File file = new File(this filePath);
return file exists();
}
/**
* 得到這個txt所有的列的數據 空行將自動跳過 並自動刪除文字前後的空格
*
* @return List<String>
* @throws IOException
*/
public List<String> fileLinesContent() throws IOException {
List<String> strs = new ArrayList<String>();
File file = new File(this filePath);
FileReader fr = new FileReader(file);// 建立FileReader對象 並實例化為fr
BufferedReader br = new BufferedReader(fr);// 建立BufferedReader對象 並實例化為br
String Line = br readLine();// 從文件讀取一行字元串
// 判斷讀取到的字元串是否不為空
while (Line != null) {
if (! equals(Line))
strs add(Line trim());
Line = br readLine();// 從文件中繼續讀取一行數據
}
br close();// 關閉BufferedReader對象
fr close();// 關閉文件
return strs;
}
/**
* 創建一個空的記事本文檔 如果這個記事本文檔存在就不再創建 函數還未寫實現部分<br/> 如果文本已經存在則不再創建
*
* @throws IOException
*/
public void createEmptyNote() throws IOException {
File file = new File(this filePath);
if (!file exists())
file createNewFile();
}
/**
* 將內容寫入這個文本 注意以差團缺前的內容將會被刪除
*
* @param str
* 將要寫入的內容
* @throws IOException
*/
public void writeString(String str) throws IOException {
File file = new File(this filePath);
BufferedWriter output = new BufferedWriter(new FileWriter(file));
output write(str);
output close();// 關閉BufferedReader對象
}
/**
* 在文本的指定行插入文字 如果該行已經存在 該行內容將會被刪除 如果行號不存在 將會 *** 入到最後一行
*
* @param i
* 行號 行號為 時 將插入到最後一行
* @param str
* 將要插入的內容
* @throws IOException
*/
public void insertWords(int i String str) throws IOException {
List<String> strs = fileLinesContent();
// 進行插入操作
if (i == || strs size() < i) // 插入到最後一行
{
strs add(str);
} else { // 插入到文本中
strs set(i str);
}
// 重新寫入到文本
StringBuffer *** = new StringBuffer();
for (String temp : strs) {
*** append(temp replace( )+ );
}
writeString( *** toString());
}
lishixin/Article/program/Java/hx/201311/26945
『柒』 java 基本數據類型和其封裝類你知多少
8種基本類型按照類型劃分:byte,short,int,long,float,double,boolean,char。
8種基本類型的封裝類:Byte,Short,Integer,Long,Float,Double,Boolean,Character.
為什麼需回要封裝類?答
因為泛型類包括預定義的集合,使用的參數都是對象類型,無法直接使用基本數據類型,所以Java又提供了這些基本類型的封裝類
基本類型和對應的封裝類由於本質的不同。具有一些區別:
1.基本類型只能按值傳遞,而封裝類按引用傳遞。
2.基本類型會在棧中創建,而對於對象類型,對象在堆中創建,對象的引用在棧中創建,基本類型由於在棧中,效率會比較高,但是可能存在內存泄漏的問題。
『捌』 JAVA類的封裝是什麼意思
封裝就是把抽象出來的JAVA類的變數和方法集成為一個集體,就像集成電路元件成為一個獨專立的晶元屬一樣,它只留出對外的介面,使用者可以直接使用它,但看不到其內部是怎樣實現的,JAVA類的封裝就是對外而言能直接使用它來定義的對象去調用相關變數和方法
『玖』 java怎麼把數據封裝list
可以先創建好List對象:List<泛型>對象名稱=new ArrayList<泛型>();
然後調用list集合的add方法實現數據的填充:對象名稱.add(泛型的參數)
『拾』 Java中類的封裝是如何實現的
java類中,是分四種級別的坦襲:穗姿public,private,保護,和默認級別。其中最常用的是public和private級別。java類封裝,就是通過級別來控制的。private級別時讓族兄,只可以類內部訪問。public級別可讓其他人使用。所以封住java類時,只要把你想封裝的類資源寫成private級別,再在類內部給它提供一個可被他人調用的public方法,這樣,就實現了封裝。大概就是這樣吧