1. 程式人生 > >Java之ArrayList練習

Java之ArrayList練習

/**定義新增圖書的方法add,
 * 按書名修改價格的方法 update,
 * 按照賬戶刪除圖書的方法delete,
 * 按賬號查詢圖書的方法query,要求返回Book型別。按作者查詢的圖書的方法 query,要求返回Book型別。
 * 查詢所有圖書的方法 showAll
 *按價格降序排序方法     
**/

public class Book {
	//賬號id,書名name、作者author 和價格price
	private int id;
	private String name;
	private String author;
	private double price;
	public Book(int id, String name, String author, double price) {
		super();
		this.id = id;
		this.name = name;
		this.author = author;
		this.price = price;
	}
	
	
	public String toString() {
		return "id=" + id + "\tname=" + name + "\t author=" + author + "\t price=" + price;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public String getName() {
		return name;
	}
}

public class Manager {
	private ArrayList<Book> list=new ArrayList<Book>();
	//新增圖書的方法add
	public void add(Book book) {
		boolean f=true;
		for(Book book1:list) {
			if(book1.getId()==book.getId())
				f=false;
		}
		if(f)
			list.add(book);
		else
			System.out.println("該賬戶已存在");
		
	}
	//按書名修改價格的方法 update
	public void update(String name,double price) {
		for(Book book:list) {
			if(book.getName().equals(name))
				book.setPrice(price);
		}
	}
	//按照賬戶刪除圖書的方法delete,
	public void delete(int id) {
		for(Book book:list) {
			if(book.getId()==id)
				list.remove(book);
		}
	}
	//按賬號查詢圖書的方法query
	public Book query(int id) {
		int i;
		for(i=0;i<list.size();i++) {
			if(list.get(i).getId()==id)
				break;
		}
		if(i==list.size())
			return null;
		return list.get(i);
	}
	//按作者查詢圖書的方法query
		public Book query(String au) {
			int i;
			for(i=0;i<list.size();i++) {
				if(list.get(i).getAuthor().equals(au))
					break;
			}
			if(i==list.size())
				return null;
			return list.get(i);
		}
	//列印所有圖書的方法 showAll
		public void showAll() {
		for(Book book:list) {
			
			System.out.println(book);
		}
	}
	public ArrayList<Book> getList() {
		return list;
	}

	public void setList(ArrayList<Book> list) {
		this.list = list;
	}


}

public class Test {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Bank<Account> ban=new Bank<Account>();
		ban.add(new Account(1001, "張三", 1000));
		ban.add(new Account(2002, "李四", 3400.50));
		ban.add(new Account(3003, "王五", 4320));
		ban.add(new Account(4004, "趙六", 2223));
		ban.add(new Account(5005, "孫七", 50));
		ban.showAll();
		int id=-1;
		for(Account account:ban.getList()) {
			//孫七給自己的帳戶增加了1000塊錢,更新Bank物件中的資料
			if(account.getName().equals("孫七")) {
				account.saving(1000);
			}
			//王b 五從自己的帳戶中取走2000塊錢,更新Bank物件中的資料;
			else if(account.getName().equals("王五")) {
				account.withDraw(2000);
			}
			//張三銷戶,更新Bank物件中的資料。
			else if(account.getName().equals("張三")) {
				id=account.getId();
			}
		}
		if(id!=-1)
			ban.delete(id);
		System.out.println("\n更改後:");
		ban.showAll();
	}
}

相關推薦

JavaArrayList練習

/**定義新增圖書的方法add,  * 按書名修改價格的方法 update,  * 按照賬戶刪除圖書的方法delete,  * 按賬號查詢圖書的方法query,要求返回Book型別。按作者查詢的圖書的方法 query,要求返回Book型別。  * 查詢所有圖書的方法 show

javaArrayList初始容量原始碼解析【jdk 1.8】

ArrayList解析 繼承的類和實現的介面 public class ArrayList<E>extends AbstractList<E>implements List<

java集合(ArrayList練習)

import java.util.ArrayList; import java.util.Iterator; /* 1.存入自定義物件,並且去除重複元素。  * 2.List集合判斷元素是否相同,依

淺析Java源碼ArrayList

city ans st2 不用 定義 結構 count als 拋出異常   面試題經常會問到LinkedList與ArrayList的區別,與其背網上的廢話,不如直接擼源碼!   文章源碼來源於JRE1.8,java.util.ArrayList   既然是淺析,就主要針

java集合ArrayList源碼解讀

object類 util tcap div new length ext ali xtend 源自:jdk1.8.0_121 ArrayList繼承自AbstractList,實現了List、RandomAccess、Cloneable、Serializable。 變量

Java基礎系列--集合ArrayList

邏輯結構 完全 必須 () abs 數組使用 就會 而已 自減 原創作品,可以轉載,但是請標註出處地址:http://www.cnblogs.com/V1haoge/p/8494618.html 一、概述   ArrayList是Java集合體系中最常使用,也是最簡單的集

Java知識點專項練習 Java魯棒性的特點

響應 計算 指針 情況 功能 異常處理 可能 java編譯 檢查 Java魯棒性的特點如下: Java在編譯和運行程序時都要對可能出現的問題進行檢查,以防止錯誤的產生。 Java編譯器可以查出許多其他語言運行時才能發現的錯誤。 Java不支持指針操作,大大減少了錯誤發

Java知識點專項練習 數據類型兩大類

char ger ava 練習 類型 包裝類 java 進行 cte Java的數據類型分為兩大類:基本類型和引用類型; 基本類型只能保存一些常量數據,引用類型除了可以保存數據,還能提供操作這些數據的功能; 為了操作基本類型的數據,java也對它們進行了封裝, 得到八個類,

java集合類ArrayList詳解

int() 相等 toa isempty ont ati urn 影響 輸入 一、ArrayList源碼分析 1、全局變量 (1)默認容量(主要是通過無參構造函數創建ArrayList時第一次add執行擴容操作時指定的elementData的數組容量為10) privat

java集合ArrayList鏈表基礎

print ins 定位 move ensure cte ini for循環 獲取 ArrayList可變數組 : arrayList繼承AbstractList抽象類,實現list接口,底層基於數組實現。可存放null,除了非同步的之外,大致等同Vector。適用快速訪問

java成神——集合框架ArrayList,Lists,Sets

code integer 查詢 aes 循環 etl 散列 排序 shuf 集合 集合種類 ArrayList 聲明 增刪改查元素 遍歷幾種方式 空集合 子集合 不可變集合 LinkedList Lists 排序 類型轉換 取交集 移動元素 刪除交集元素 Set

Java基礎學習Map練習

在學習Map時做了一道有意思的練習題,在這裡記錄一下。 題目的大概意思是: 輸入任意一串字串,如aaabbbccsghedkok,統計字串中每一個字元出現的次數,輸出結果的形式為:a(1)b(2)…。 思路: 字母和次數之間存在對映關係,所以使用map進行儲存。輸出的字母之間是有順序的,

thinking in java (十一) ----- 集合ArrayList

ArrayList概述 ArrayList是實現了List介面的動態陣列,所謂的動態是其大小可變。允許包括null在內的元素。除了實現List介面外,此類還提供了一些方法來操控內部來儲存列表的陣列大小。 每個ArrayList例項都有一個容量,該容量是指用來儲存元素的陣列大小。

JAVA集合學習ArrayList

1.程式碼示例 public class Text { public static void main(String[] args) { // TODO Auto-generated method stub //建立一個ArrayList列表 List<String> lis

Java容器ArrayList原始碼總結

Java容器之ArrayList原始碼總結 本次學習基於JDK1.7版本,目的在於對常用的容器類進行深入學習,加深理解,以便工作中更好的使用。 容器基本概念 Java容器類類庫的用途是“儲存物件”,並劃分為兩個不同的概念: 1、Collection儲存單一的元素。 2、Map儲存

java 集合類ArrayList

本文將從原始碼的角度對Java 最常用的集合類ArrayList進行介紹,程式碼版本為1.8_121。 繼承結構 除了一些功能性的介面,ArrayList的繼承大致可以看成是從Collection=>AbstractCollection=>AbstractList=&g

Java 集合系列03 ArrayList詳細介紹

ArrayList做為List介面中最常用的實現類,必須掌握。 一、ArrayList簡介 與Java中的陣列相比ArrayList的容量可以動態增加。它繼承與AbstractList,實現了List, RandomAccess, Cloneable, java.io.Serializable 和Vec

Java基礎系列(四十四):集合ArrayList

簡介 ArrayList與Vector非常相似,他們都是基於陣列實現的集合,都可以動態擴容,只不過Vector是同步的,所需的資源較多,而且比較老,有一些缺點,所以我們現在更多的是去使用ArrayList,而不是Vector。下面,我們在閱讀原始碼的過程中遇到的一些問題對ArrayL

3.7 Java列印流和資料流(附字元位元組流練習

列印流 例項 資料流 資料流輸出 資料流輸入 字元位元組流練習 位元組流輸出 字元流輸出

java集合----ArrayList原始碼分析(基於jdk1.8)

一、ArrayList 1、ArrayList是什麼: ArrayList就是動態陣列,用MSDN中的說法,就是Array的複雜版本,它提供了動態的增加和減少元素,實現了ICollection和IList介面,靈活的設定陣列的大小等好處,實現了Randomaccess介面,支援快速隨