代码解析:
1.Java中遍历数组的方法
遍历数组方法较多,如何遍历,只要你喜欢,都可以的。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* 遍历数组四种方法
* @author 黄端
*/
class Test {
/**
* Iterator 迭代器
* @param args
*/
public static void main(String[] args) {
Test1 t = new Test1();
Test1 t1 = new Test1();
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(4);
list.add(3);
Iterator iterator = list.iterator();
System.out.println("》》java中遍历数组方法一");
while (iterator.hasNext()) {
int i = Integer.parseInt(iterator.next().toString());
System.out.println(i);
}
System.out.println("》》java中遍历数组方法二");
for (Iterator iter = list.iterator(); iter.hasNext();) {
int i = Integer.parseInt(iter.next().toString());
System.out.println(i);
}
System.out.println("》》java中遍历数组方法三");
for (Object obj : list) {
System.out.println(obj);
}
System.out.println("》》java中遍历数组方法四");
for (int i = 0; i < list.size(); i++) {
int k = Integer.parseInt(list.get(i).toString());
System.out.println(k);
}
}
}
2.Java如何将数组转成Collection
我们可以使用java.util.Arrays类将数组转换成List/Collection。这个类提供的静态方法asList(Object[] a)能够将数组转成List/Collection。
import java.util.Arrays; |
上面代码的输出是:
Happy |
3.Java单链表的创建与遍历
程序目的:测试单链表的创建与遍历算法
程序组成:由Node.java,List.java和c8_2.java三部分组成
程序的构思:先创建两个空链表f1和f2,然后创建三个结点Node1,Node2和Node3,并使用头插法将这三个结点添加到链表f1中;此后,我们再创建结点Node4,Node5和Node6,并使用尾插法将这三个结点添加到链表f2中;最后,遍历链表f1和f2,分别输出两个链表中的每个结点。
一、结点类程序Node.java
public class Node //定义结点类
{
Object num, name, score; //结点中的数据属性
Node next; //结点中的指针属性,指向下一个Node对象的引用
public Node(Object obj1,Object obj2,Object obj3) //构造方法
{
num=obj1;
name=obj2;
score=obj3;
next=null;
}
}
二、链表类程序List.java
public class List //定义链表类
{
Node head,tail; //head表示链表的头结点,tail表示链表的尾结点
String Lname; //Lname表示链表的名字属性
//创建空链表时调用构造方法1,str为用户创建链表时指定的链表对象名
public List(String str)
{
Lname=str; head=null; tail=null;
}
//创建空链表时调用构造方法2,若用户没给链表对象名,则用List作为默认名
public List()
{
Lname="List"; head=null; tail=null;
}
//创建一个结点
//添加结点n到链表头
public void appendToFront(Node n)
{
if(head==null) //链表为空,添加第一个结点到链表中
{ head=n; tail=n;}
else
{ n.next=head; head=n; } //插入结点n到链表头部,
}
//添加结点n到链表尾
public void appendToTail(Node n)
{
if(head==null) //链表为空,添加第一个结点到链表中
{ head=n; tail=n;}
else
{ tail.next=n; tail=n; } //插入结点n到链表的尾部
}
//遍历一个单链表
public void visitAllNode()
{
Node p=head; //设p为head结点的引用
System.out.println(this.Lname);
if(p==null)System.out.println("该链表为空链表");
else
while(true)
{
System.out.print(p.num.toString()+" "+p.name.toString()+" "+p.score.toString()+" -> ");
if(p.next==null)break; //再没有需要访问的结点
p=p.next; //设p为下一个结点的引用
}
}
}
三、测试程序c8_2.java
public class c8_2 //创建链表、添加结点及打印链表中所有结点测试程序
{
public static void main(String[] args)
{
//创建整型对象
Integer n1=new Integer(1001),n2=new Integer(1008);
Integer n3=new Integer(1003),n4=new Integer(1002);
Integer n5=new Integer(1009),n6=new Integer(1005);
//创建浮点型对象
Double s1=new Double(89.0);
Double s2=new Double(64.5);
Double s3=new Double(90.0);
Double s4=new Double(79.0);
Double s5=new Double(96.5);
Double s6=new Double(80.0);
//创建结点对象
Node node1=new Node(n1,"Li1",s1),node2=new Node(n2,"Li2",s2),
node3=new Node(n3,"Li3",s3),node4=new Node(n4,"Li4",s4),
node5=new Node(n5,"Li5",s5),node6=new Node(n6,"Li6",s6);
//创建f1链表对象
List f1=new List("f1List");
//将结点插入到f1链表头部
f1.appendToFront(node1);
f1.appendToFront(node2);
f1.appendToFront(node3);
List f2=new List("f2list");
//将结点插入到f2链表尾部
f2.appendToTail(node4);
f2.appendToTail(node5);
f2.appendToTail(node6);
//打印f1链表中的所有结点
f1.visitAllNode(); System.out.println();
//打印f2链表中的所有结点
f2.visitAllNode(); System.out.println();
}
}
程序的运行结果:
f1List
1003 Li3 90.0 -> 1008 Li2 64.5 -> 1001 Li1 89.0 ->
f2list
1002 Li4 79.0 -> 1009 Li5 96.5 -> 1005 Li6 80.0 ->