1. 程式人生 > >JAVA基礎實例(二)

JAVA基礎實例(二)

for bin 存在 void hset search demo 個數字 .so

1.做一個飼養員給動物餵食物的樣例體現JAVA中的面向對象思想,接口(抽象類)的用處

package com.softeem.demo;
/**
[email protected]
*動物的接口
*/
interface Animal
{
public void eat(Food food);
}
/**
[email protected]
*一種動物類:貓
*/
class Cat implements Animal
{
public void eat(Food food)
{
System.out.println("小貓吃"+food.getName());
}
}
/**
[email protected]
/* */
*一種動物類:狗
*/
class Dog implements Animal
{
public void eat(Food food)
{
System.out.println("小狗啃"+food.getName());
}
}

/**
[email protected]
*食物抽象類
*/
abstractclass Food
{
protected String name;
public String getName() {
returnname;
}

public void setName(String name) {
this.name = name;
}
}

/**
[email protected]
/* */
*一種食物類:魚
*/
class Fish extends Food
{
public Fish(String name) {
this.name = name;
}
}
/**
[email protected]
*一種食物類:骨頭
*/
class Bone extends Food
{
public Bone(String name) {
this.name = name;
}
}

/**
[email protected]
*飼養員類
*
*/
class Feeder
{
/**
*飼養員給某種動物餵某種食物
[email protected]
/* */
[email protected]
*/
public void feed(Animal animal,Food food)
{
animal.eat(food);
}
}

/**
[email protected]
*測試飼養員給動物餵食物
*/
public class TestFeeder {
public static void main(String[] args) {
Feeder feeder=new Feeder();
Animal animal=new Dog();
Food food=new Bone("肉骨頭");
feeder.feed(animal,food); //給狗餵肉骨頭
animal=new Cat();
food=new Fish("魚");
feeder.feed(animal,food); //給貓餵魚
}
}




2.寫一個方法,用二分查找法推斷隨意整數在隨意整數數組裏面是否存在,若存在就返回它在數組中的索引位置,不存在返回-1

/**
*二分查找特定整數在整型數組中的位置(遞歸)
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
*/
publicint binarySearch(int[] dataset,int data,int beginIndex,int endIndex)
{
int midIndex = (beginIndex+endIndex)/2;
if(data <dataset[beginIndex] || data>dataset[endIndex] || beginIndex>endIndex)
return -1; if(data <dataset[midIndex])
{
return binarySearch(dataset,data,beginIndex,midIndex-1);
}elseif(data>dataset[midIndex])
{
return binarySearch(dataset,data,midIndex+1,endIndex);
}else
{
return midIndex;
}
}

/**
*二分查找特定整數在整型數組中的位置(非遞歸)
[email protected]
[email protected]
[email protected]
*/
publicint binarySearch(int[] dataset ,int data)
{
int beginIndex = 0;
int endIndex = dataset.length - 1;
int midIndex = -1;
if(data <dataset[beginIndex] || data>dataset[endIndex] || beginIndex>endIndex)
return -1; while(beginIndex <= endIndex) {
midIndex = (beginIndex+endIndex)/2;
if(data <dataset[midIndex]) {
endIndex = midIndex-1;
} elseif(data>dataset[midIndex]) {
beginIndex = midIndex+1;
}else
{
return midIndex;
}
}
return -1;
}

3.寫一個彩票號碼的生成器。35選7(1~35)。而且生成的7個號碼不能反復

(第n個數字要與前n-1個數字進行比較)

int[] number = new int[7];
for(int i=0;i<7;i++){
double d = Math.random();
number[i]=(int)(d*35+1);
for(int j=0;j<i;j++){
if(number[i]==number[j]){
i--;
break;
}
}
}
for(int i=0;i<7;i++){
System.out.println(number[i]);
}

或者用HashSet(集合)存儲數字。會自己主動過濾反復:

HashSet hs = new HashSet();
while(true){
double d = Math.random();
int number = (int)(d*35+1);
hs.add(number);
if(hs.size()==7)break;
}
System.out.println(hs);

或者還有一種考慮就是將下標作為討論的對象:數組temp存儲1~35個整數,第一次,從此數組下標0~34個中隨機篩選出一下標5,將此下標相應的數賦給result[0] = temp[5],然後將temp數組位置上的數用此數組的最後一個數代替temp[34],第二次,從剩余33個中隨機選取下標,. . .

int[] result = new int[7];
int[] temp = new int[35];
for(int i=0;i<temp.length;i++){
temp[i] = i+1;
}
for(int i=0;i<result.length;i++){
int index = (int)(Math.random()*(35-i));
result[i] = temp[index];
temp[index] = temp[34-i];
}
for(int i=0;i<result.length;i++){
System.out.println(result[i]);
}


JAVA基礎實例(二)

相關推薦

JAVA基礎

for bin 存在 void hset search demo 個數字 .so 1.做一個飼養員給動物餵食物的樣例體現JAVA中的面向對象思想,接口(抽象類)的用處 package com.softeem.demo; /** [email p

JAVA基礎

actor oid 其它 返回 prime i++ con bsp factorial 1寫一個方法,用一個for循環打印九九乘法表 /** *一個for循環打印九九乘法表 */ public void nineNineMultiTable() { for

Hadoop作業性能指標及參數調優 Hadoop作業性能調優7個建議

optimize 自帶 管理 導致 10g avg merge map 設置 作者:Shu, Alison Hadoop作業性能調優的兩種場景: 一、用戶觀察到作業性能差,主動尋求幫助。 (一)eBayEagle作業性能分析器 1. Hadoop作業性能異常指標 2.

Java基礎—IO小結大綱待更新

16px 文件復制 buffere tro 順序 -a [] 啟用 -c 一、緩沖流的使用   每個字節流都有對應的緩沖流:      BufferedInputStream / BufferedOutputStream   構造器:         方法摘要

JAVA基礎-IO流

直寫 eno 接口 寫入 print lis ted his ride 一、字節流 字節流是通過字節來進行讀寫操作的,他的使用對象相比於字符流來說更加的廣泛。這主要是因為他們讀寫文件的方式而決定的。字符流讀寫文件時是將讀取到的字節通過默認編碼表轉換成字符,在通

Python爬蟲使用selenium抓取鬥魚直播平臺數據

def 獲取 平臺 es2017 抓取 設置 log ips driver 程序說明:抓取鬥魚直播平臺的直播房間號及其觀眾人數,最後統計出某一時刻的總直播人數和總觀眾人數。 過程分析: 一、進入鬥魚首頁http://www.douyu.com/directory/all 進

Python爬蟲框架Scrapy

head sports spi 工作目錄 http 鏈接 進入 效果 tex 目標任務:使用Scrapy框架爬取新浪網導航頁所有大類、小類、小類裏的子鏈接、以及子鏈接頁面的新聞內容,最後保存到本地。 大類小類如下圖所示: 點擊國內這個小類,進入頁面後效果如下圖(部分截圖)

SpringCloud+MyBatis+Redis整合—— 超詳細

數據庫 primary pri open nosql html batis urn hub 2、SpringCloud+MyBatis+Redis   redis是一種nosql數據庫,以鍵值對<key,value>的形式存儲數據,其速度相比於MySQL之類的數

java基礎學python-------------字串

字串 長度:len(string) 重複:*.     string*3== stringstringstring 成員運算子(判斷字串是否為另一個字串的子串):in 列舉字串的每一個成員:for 字串索引:從左往右是從下標0開始,從右往左是從下標-1開始,索引運算子:

Java基礎—IO小結緩衝流與其它流的使用

一、緩衝流的使用   每個位元組流都有對應的緩衝流:      BufferedInputStream / BufferedOutputStream   構造器:         方法摘要與對應節點流類似   使用緩衝流實現檔案複製:實際中也是;其中流的關閉只需要關閉緩衝流,內部巢狀的位元組流

java基礎面試題

1、JDK和JRE的區別? java執行時的環境(JRE)是將要執行java的java虛擬機器。他同時包含了執行applet需要的瀏覽器外掛。java開發工具包(JDK)是完整的java軟體開發包。包含了JRE、編譯器、和其他的工具,可以讓開發者開發。編譯、執行java應用程式; 2、什麼是

java基礎知識-面試

Connections和Connection有何區別? java.util.Collection是一個集合介面,它提供了對集合物件進行基本操作的通用介面方法,Connection介面在java類庫中有很多具體的實現,Connection的意義是為各種具體的集

Java基礎知識複習--流程控制

1.練習-黃金分割點 尋找某兩個數相除,其結果 離黃金分割點 0.618最近 分母和分子不能同時為偶數 分母和分子 取值範圍在[1-20] package review2; public class Test1 { public static void main(S

java基礎知多少

Java基礎知識(二) 摘要 通常情況下:瞭解一些看上去很容易,其實這些東西的背後是很複雜的。想深入瞭解並熟悉它們,就必需要認識它們背後的知識。 問題: 要了解Java基礎知識中的一些看上去很難的知識點,像鎖,同步,之類的。想要很容易的瞭解為什麼?需要了解JVM(Java虛

Java基礎——面向物件繼承

一、繼承概述 1.使用extends關鍵字 繼承後子類可以使用父類成員 2.繼承的好處 提高程式碼的複用性 讓類與類之間產生了關係,給第三個特徵多型提供了前提 3.Java中繼承的特點  Java中支援單機城。不直接支援多繼承,但對C++中的多繼

java基礎終極總結

備註:本文篇幅較大 開頭是目錄 按住ctrl  點選藍色的標題即可檢視相關內容陣列 5程式碼塊 13 16靜態類 29抽象類 29介面 30內部類 34多型 36方法的過載與重寫區別點過載重寫(覆寫)英文OverloadingOveriding定義方法名稱相同,引數的型別或個

java基礎鞏固系列:Integer與int之間的區別

在JDK1.5之後引入了自動裝箱(autoboxing)與自動拆箱(unboxing),這讓很多對java的初學者感到很疑惑,我剛才也是其中一員。 首先,有一些基本的概念需要了解: 1、Ingeter是int的包裝類,int的初值為0,Ingeter的初值為null。 2

Python - Django - ORM

cut 獲得 put con 修改 thead 不存在 技術分享 cts 在 app01/models.py 中添加 Book 類對象表 from django.db import models # Create your models here. #

Java Tuple使用

浪費 extend 不同的 desc 操作 總頁數 問題 測試類 padding 轉自鏈接:http://www.cnblogs.com/davidwang456/p/4514659.html 一、為什麽使用元組tuple? 元組和列表list一樣,都可能用於數據存

java使用Rome解析Rss的

ica cati nload summary 界面 sina uniq 作者 現在 Rome簡介 Rome是為RSS聚合而開發的開源包,它可以支持0.91、0.92、0.93、0.94、1.0、2.0,可以說rss的版本基本上都支持了。 Rss簡介 RSS是站點用來和