導航:首頁 > 編程語言 > 遍歷Java

遍歷Java

發布時間:2022-02-04 01:06:23

A. java如何遍歷數組

int[] is = new int[1,12,4,546]
for(int i=0; i<is.length; i++){
System.out.println(int[i] + "");
}
這就是一個最簡單的遍歷數組,遍歷數組通俗點就是說把數組中的每個數都讀一遍(部分有if條件+break的則可能不會完全遍歷),你可以對於數組中的每個數進行處理,亦或者是找到數組中那個你需要的數。

B. java中的「遍歷」是什麼意思

1. 「遍歷」跟循環是一個意識
2. java中有很多集合元素,如List, 對其「遍歷」可以獲得子元素,進行下一步操作

C. 什麼是樹的遍歷java

樹遍歷方法:有先序遍歷、中序遍歷、後序遍歷以及廣度優先遍歷四種遍歷樹的方法

Demo:


publicclassThreeLinkBinTree<E>{

publicstaticclassTreeNode{

Objectdata;
TreeNodeleft;
TreeNoderight;
TreeNodeparent;

publicTreeNode(){

}

publicTreeNode(Objectdata){
this.data=data;
}

publicTreeNode(Objectdata,TreeNodeleft,TreeNoderight,TreeNodeparent){
this.data=data;
this.left=left;
this.right=right;
this.parent=parent;
}

}

privateTreeNoderoot;

//以默認的構造器創建二叉樹
publicThreeLinkBinTree(){
this.root=newTreeNode();
}

//以指定根元素創建二叉樹
publicThreeLinkBinTree(Edata){
this.root=newTreeNode(data);
}

/**
*為指定節點添加子節點
*
*@paramparent需要添加子節點的父節點的索引
*@paramdata新子節點的數據
*@paramisLeft是否為左節點
*@return新增的節點
*/
publicTreeNodeaddNode(TreeNodeparent,Edata,booleanisLeft){

if(parent==null){
thrownewRuntimeException(parent+"節點為null,無法添加子節點");
}
if(isLeft&&parent.left!=null){
thrownewRuntimeException(parent+"節點已有左子節點,無法添加左子節點");
}
if(!isLeft&&parent.right!=null){
thrownewRuntimeException(parent+"節點已有右子節點,無法添加右子節點");
}

TreeNodenewNode=newTreeNode(data);
if(isLeft){
//讓父節點的left引用指向新節點
parent.left=newNode;
}else{
//讓父節點的left引用指向新節點
parent.right=newNode;
}
//讓新節點的parent引用到parent節點
newNode.parent=parent;
returnnewNode;
}

//判斷二叉樹是否為空
publicbooleanempty(){
//根據元素判斷二叉樹是否為空
returnroot.data==null;
}

//返回根節點
publicTreeNoderoot(){
if(empty()){
thrownewRuntimeException("樹為空,無法訪問根節點");
}
returnroot;
}

//返回指定節點(非根節點)的父節點
publicEparent(TreeNodenode){
if(node==null){
thrownewRuntimeException("節點為null,無法訪問其父節點");
}
return(E)node.parent.data;
}

//返回指定節點(非葉子)的左子節點,當左子節點不存在時返回null
publicEleftChild(TreeNodeparent){
if(parent==null){
thrownewRuntimeException(parent+"節點為null,無法添加子節點");
}
returnparent.left==null?null:(E)parent.left.data;
}

//返回指定節點(非葉子)的右子節點,當右子節點不存在時返回null
publicErightChild(TreeNodeparent){
if(parent==null){
thrownewRuntimeException(parent+"節點為null,無法添加子節點");
}
returnparent.right==null?null:(E)parent.right.data;
}

//返回該二叉樹的深度
publicintdeep(){
//獲取該樹的深度
returndeep(root);
}

//這是一個遞歸方法:每一棵子樹的深度為其所有子樹的最大深度+1
privateintdeep(TreeNodenode){
if(node==null){
return0;
}
//沒有子樹
if(node.left==null&&node.right==null){
return1;
}else{
intleftDeep=deep(node.left);
intrightDeep=deep(node.right);
//記錄其所有左、右子樹中較大的深度
intmax=leftDeep>rightDeep?leftDeep:rightDeep;
//返回其左右子樹中較大的深度+1
returnmax+1;
}
}

//實現先序遍歷
//1、訪問根節點
//2、遞歸遍歷左子樹
//3、遞歸遍歷右子樹
publicList<TreeNode>preIterator(){
returnpreIterator(root);
}

privateList<TreeNode>preIterator(TreeNodenode){

List<TreeNode>list=newArrayList<TreeNode>();
//處理根節點
list.add(node);

//遞歸處理左子樹
if(node.left!=null){
list.addAll(preIterator(node.left));
}

//遞歸處理右子樹
if(node.right!=null){
list.addAll(preIterator(node.right));
}

returnlist;

}

//實現中序遍歷
//1、遞歸遍歷左子樹
//2、訪問根節點
//3、遞歸遍歷右子樹
publicList<TreeNode>inIterator(){
returninIterator(root);
}

privateList<TreeNode>inIterator(TreeNodenode){

List<TreeNode>list=newArrayList<TreeNode>();

//遞歸處理左子樹
if(node.left!=null){
list.addAll(inIterator(node.left));
}

//處理根節點
list.add(node);

//遞歸處理右子樹
if(node.right!=null){
list.addAll(inIterator(node.right));
}

returnlist;

}

//實現後序遍歷
//1、遞歸遍歷左子樹
//2、遞歸遍歷右子樹
//3、訪問根節點
publicList<TreeNode>postIterator(){
returnpostIterator(root);
}

privateList<TreeNode>postIterator(TreeNodenode){

List<TreeNode>list=newArrayList<TreeNode>();

//遞歸處理左子樹
if(node.left!=null){
list.addAll(postIterator(node.left));
}

//遞歸處理右子樹
if(node.right!=null){
list.addAll(postIterator(node.right));
}

//處理根節點
list.add(node);

returnlist;

}

//實現廣度優先遍歷
//廣度優先遍歷又稱為按層遍歷,整個遍歷演算法先遍歷二叉樹的第一層(根節點),再遍歷根節點的兩個子節點(第二層),以此類推
publicList<TreeNode>breadthFirst(){

Queue<TreeNode>queue=newArrayDeque<TreeNode>();
List<TreeNode>list=newArrayList<TreeNode>();
if(root!=null){
//將根元素加入「隊列」
queue.offer(root);
}
while(!queue.isEmpty()){
//將該隊列的「隊尾」的元素添加到List中
list.add(queue.peek());
TreeNodep=queue.poll();
//如果左子節點不為null,將它加入「隊列」
if(p.left!=null){
queue.offer(p.left);
}
//如果右子節點不為null,將它加入「隊列」
if(p.right!=null){
queue.offer(p.right);
}
}
returnlist;
}

}

D. 在java中集合的遍歷是怎樣遍歷的

import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
//集合遍歷
public class TestHashSet{
public static void main(String[] args) {
HashSet h = new HashSet();
h.add("1st");
h.add("2nd");
h.add(new Integer(3));
h.add(new Double(4.0));
h.add("2nd"); // 重復元素, 未被加入
h.add(new Integer(3)); // 重復元素,未被加入
h.add(new Date());
System.out.println("開始: size=" + h.size());
Iterator it = h.iterator();
while(it.hasNext()){
Object o = it.next();
System.out.println(o);
}
}
}

E. JAVA遍歷數組

你好,很高興為你解答。
if(e==i.length) 根本無法判斷是否是最後一個。你執行一下這段代碼,什麼都輸出不了。
e是指在數組i中的元素,在這個例子中,都是1。

F. Java遍歷

因為第一個length是String類的一個方法,下面附上源碼

第二處的length則是數組的一個屬性。一個是屬性一個是方法不可混為一談。

G. 字元串如何遍歷java

1、String s="abcde";
for(int i=0;i<s.length();i++)
{
char c=s.charAt(i);
System.out.print(c+" ");//輸出a b c d e,獲取字元串
}
2:for(String x : s){

System.out.print(s+" ");//輸出a b c d e,獲取字元串
}
3、Arrays.asList(s).stream().forEach(x -> System.out.println(x));

推薦使用3.然後自己去了解一下jdk1.8+的stream

H. Java中的遍歷

用多層嵌套吧
中間用if()語句判斷是否相同。
自己試試吧

I. Java數組遍歷

因為是隨機生成的數組,所以可能數組中沒有小於10的數字,這時處理後的數組和之前一樣看不到效果。多試幾次就好了。

importjava.util.Random;

publicclassDemo{
publicstaticvoidmain(String[]args){
Randomrandom=newRandom();
int[]arr=newint[5];

for(inti=0;i<arr.length;i++){
arr[i]=random.nextInt(46)+5;
}

System.out.print("隨機生成的數組:");
printArr(arr);

arr=getNewArr(arr);
System.out.print("處理之後的數組:");
printArr(arr);

}

privatestaticint[]getNewArr(int[]arr){
for(inti=0;i<arr.length;i++){
if(arr[i]<10){
arr[i]=0;
}
}
returnarr;
}

privatestaticvoidprintArr(int[]arr){
for(inti:arr){
System.out.print(i+"");
}
System.out.println();
}
}

閱讀全文

與遍歷Java相關的資料

熱點內容
海康威視設備已加密 瀏覽:661
自適應路由演算法 瀏覽:313
pythonxlwt寫入一列 瀏覽:993
性之助app哪裡可以下載 瀏覽:412
安卓如何自己改圖標 瀏覽:848
如何去掉app資源庫的建議 瀏覽:730
中興研發面試要寫演算法嗎 瀏覽:65
linux系統配置文件 瀏覽:601
php登錄網頁模板 瀏覽:931
windownginxphp 瀏覽:509
resync命令 瀏覽:536
dos命令手冊 瀏覽:287
矽谷編程二維數組 瀏覽:41
inside游戲什麼時候移植安卓 瀏覽:944
極光安卓是什麼 瀏覽:541
如何減少pdf文件大小 瀏覽:84
ios屏幕新建文件夾 瀏覽:298
單片機固定座 瀏覽:323
一名程序員的生活 瀏覽:990
伺服器電源卡插頭如何拔 瀏覽:488