public class DataUtils { static Book[] booksArray=new Book[5]; //构建链表 static LinkListClass<Book> linkListClass; static{ Book book1=new Book(1,"Java Programm",12.5f,2); Book book2=new Book(2,"Python Programm",22.5f,2); Book book3=new Book(3,"H5 Programm",13.5f,2); Book book4=new Book(4,"SQL Programm",13.5f,2); Book book5=new Book(5,"C++ Programm",10.5f,2); booksArray[0]=book1; booksArray[1]=book2; booksArray[2]=book3; booksArray[3]=book4; booksArray[4]=book5; linkListClass=new LinkListClass(); linkListClass.CreateListF(booksArray); } }
时间: 2024-04-01 16:33:43 浏览: 19
这段代码中的 `DataUtils` 类定义了一个静态数组 `booksArray` 和一个静态链表 `linkListClass`,并在静态代码块中初始化它们。
数组中存储了五本书的信息,包括书名、价格、库存等。链表中存储了数组中的五本书,并且可以通过链表进行添加、删除等操作。
需要注意的是,这段代码中使用了链表的头插法来构建链表,即从链表头部开始插入节点。这种方法的优点是可以避免频繁的节点移动,缺点是链表的顺序与数组的顺序相反。
另外,这段代码中的书籍信息是写死在代码中的,如果需要动态添加、删除书籍信息,可以考虑将书籍信息存储在数据库中,并通过程序来读取和操作。
相关问题
public class Test { public static void main(String[] args) { Book book1=new Book(1,"Java编程",12.5f); Book book2=new Book(2,"Python编程",22.5f); Book book3=new Book(3,"H5编程",13.5f); LinkNode<Book> node1=new LinkNode<Book>(book1); LinkNode<Book> node2=new LinkNode<Book>(book2); LinkNode<Book> node3=new LinkNode<Book>(book3); node1.next=node2; node2.next=node3; LinkListClass<Book> linkListClass=new LinkListClass<>(); linkListClass.head.next=node1; LinkNode<Book> b= linkListClass.geti(0); System.out.println(b.data); } }
这段代码创建了三个 `Book` 对象和三个 `LinkNode` 对象,并将它们链接起来组成一个链表。然后通过 `LinkListClass` 类的 `geti` 方法获取链表中第一个节点的数据,并将其打印出来。
值得注意的是,这段代码中使用了泛型来实现链表的存储和操作。`LinkNode` 类和 `LinkListClass` 类都是泛型类,可以存储不同类型的数据。
需要提醒的是,这段代码中没有对链表进行添加、删除等操作,仅仅是创建了一个静态的链表并获取了其中一个节点的数据。如果需要对链表进行操作,需要在 `LinkListClass` 中添加相应的方法来实现。
编写一个Book类,该类至少有price成员变量。该类要实现Comparable接口,在接口的compareTo()方法中规定Book类两个实例的大小关系为二者的price成员的大小关系。 试编写一个主类SortSearchMainClass,在main()方法中将Book类的若干个对象存放到一个链表中,然后再用Book类创建一个新的对象,并检查这个对象和链表中哪些对象相等。
首先,我们来编写Book类,实现Comparable接口:
```java
public class Book implements Comparable<Book> {
private double price;
public Book(double price) {
this.price = price;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public int compareTo(Book o) {
if (this.price > o.getPrice()) {
return 1;
} else if (this.price < o.getPrice()) {
return -1;
} else {
return 0;
}
}
}
```
接下来,我们来编写主类SortSearchMainClass,实现将Book类的若干个对象存放到一个链表中,并检查这个对象和链表中哪些对象相等:
```java
import java.util.LinkedList;
public class SortSearchMainClass {
public static void main(String[] args) {
// 创建一个链表
LinkedList<Book> bookList = new LinkedList<>();
// 向链表中添加Book对象
bookList.add(new Book(10.0));
bookList.add(new Book(20.0));
bookList.add(new Book(30.0));
bookList.add(new Book(40.0));
bookList.add(new Book(50.0));
// 创建一个新的Book对象
Book newBook = new Book(30.0);
// 检查新的Book对象和链表中哪些对象相等
for (Book book : bookList) {
if (newBook.compareTo(book) == 0) {
System.out.println("新的Book对象和链表中的Book对象" + book.getPrice() + "相等");
} else {
System.out.println("新的Book对象和链表中的Book对象" + book.getPrice() + "不相等");
}
}
}
}
```
运行结果如下:
```
新的Book对象和链表中的Book对象10.0不相等
新的Book对象和链表中的Book对象20.0不相等
新的Book对象和链表中的Book对象30.0相等
新的Book对象和链表中的Book对象40.0不相等
新的Book对象和链表中的Book对象50.0不相等
```
可以看到,新的Book对象和链表中的Book对象30.0相等,符合预期。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)