花几千上万学习Java,真没必要!(三十一)

集合:

1、数组的特性:

2、ArrayList(动态数组):

测试代码1:

package listtest.com;
import java.util.ArrayList;  
import java.util.List;  
  
public class HashCodesArrayList {  
    public static void main(String[] args) {  
        // 创建一个ArrayList并添加一些元素  
        List<String> list = new ArrayList<>();  
        list.add("Apple");  
        list.add("Banana");  
        list.add("Cherry");  
  
        // 遍历ArrayList并打印每个元素的哈希码和值  
        for (String item : list) {  
            // 打印哈希码和值  
            System.out.println("Hash Code: " + item.hashCode() + ", Value: " + item);  
        }  
    }  
}

运行结果如下:

测试代码2:

package listtest.com;
import java.util.ArrayList;  
import java.util.List;  
  
public class ArrayListDemo {  
    public static void main(String[] args) {  
        // 创建ArrayList实例  
        List<Integer> numbers = new ArrayList<>();  
  
        // 添加元素到ArrayList中  
        // 随着元素的添加,ArrayList可能会自动扩容 
        for (int i = 0; i < 10; i++) {  
            numbers.add(i);  
        }  
  
        // 查询操作:通过索引访问元素,非常快  
        System.out.println("The element at index 5 is: " + numbers.get(5)); // 输出: The element at index 5 is: 5  
  
        // 插入操作:在列表中间插入元素,需要移动其他元素,相对较慢  
        long startTime = System.currentTimeMillis();  
        numbers.add(5, 100); // 在索引5的位置插入元素100  
        long endTime = System.currentTimeMillis();  
        System.out.println("Insertion time: " + (endTime - startTime) + " ms");  
  
        // 输出插入后的列表  
        System.out.println("After insertion: " + numbers);  
  
        // 删除操作:删除列表中的元素,同样需要移动其他元素,相对较慢  
        startTime = System.currentTimeMillis();  
        numbers.remove(5); // 删除索引5的元素(现在是100)  
        endTime = System.currentTimeMillis();  
        System.out.println("Deletion time: " + (endTime - startTime) + " ms"); 
  
        // 输出删除后的列表  
        System.out.println("After deletion: " + numbers);  
    }  
}

运行结果如下:

测试代码3:

package listtest.com;
import java.util.ArrayList;  
import java.util.List;  
import java.util.Scanner;  
  
public class ArrayListExample {  
  
    // 一个水果列表  
    private List<String> fruits = new ArrayList<>();  
  
    // 添加元素  
    public void addFruit(String fruit) {  
        fruits.add(fruit);  
    }  
  
    // 删除元素(通过索引)  
    public void removeFruit(int index) {  
        if (index >= 0 && index < fruits.size()) {  
            fruits.remove(index);  
        } else {  
            System.out.println("索引无效,无法删除元素。");  
        }  
    }  
  
    // 修改元素(通过索引)  
    public void updateFruit(int index, String newFruit) {  
        if (index >= 0 && index < fruits.size()) {  
            fruits.set(index, newFruit);  
        } else {  
            System.out.println("索引无效,无法更新元素。");  
        }  
    }  
  
    // 查找元素(通过索引并返回)  
    public String findFruit(int index) {  
        if (index >= 0 && index < fruits.size()) {  
            return fruits.get(index);  
        } else {  
            return "索引无效,未找到元素。";  
        }  
    }  
  
    // 打印所有元素  
    public void printFruits() {  
        if (fruits.isEmpty()) {  
            System.out.println("列表为空。");  
        } else {  
            System.out.println("列表中的水果:");  
            for (String fruit : fruits) {  
                System.out.println(fruit);  
            }  
        }  
    }  
  
    // 主方法
    public static void main(String[] args) {  
    	
        ArrayListExample example = new ArrayListExample();  
  
        // 添加元素  
        example.addFruit("苹果");  
        example.addFruit("香蕉");  
        example.addFruit("橙子");  
  
        // 打印所有元素  
        example.printFruits();  
  
        // 删除元素  
        example.removeFruit(1); // 删除索引为1的元素(香蕉)  
  
        // 再次打印所有元素  
        example.printFruits();  
  
        // 修改元素  
        example.updateFruit(0, "草莓"); // 索引为0的元素(苹果)更改为草莓  
  
        // 再次打印所有元素  
        example.printFruits();  
  
        // 查找元素  
        System.out.println("索引0的水果是: " + example.findFruit(0));  
  
        // 控制台交互
        Scanner scanner = new Scanner(System.in);  
        System.out.println("请输入要查找的水果索引(输入-1退出):");  
        while (true) {  
            int index = Integer.parseInt(scanner.nextLine());  
            if (index == -1) {  
                break;  
            }  
            System.out.println("索引" + index + "的水果是: " + example.findFruit(index));  
        }  
  
        scanner.close();  
    }  
}

运行结果如下:

测试代码4:

package listtest.com;
import java.util.ArrayList;  
import java.util.Iterator;  
import java.util.Scanner;  
  //用三种方式遍历ArrayList
public class ArrayListTest {  
    public static void main(String[] args) {  
        ArrayList<String> list = new ArrayList<>();  
        Scanner scanner = new Scanner(System.in);  
  
        // 获取输入的元素数量  
        System.out.print("请输入要添加的元素数量: ");  
        int count = scanner.nextInt();  
        scanner.nextLine(); // 消耗掉nextInt()后的换行符  
  
        // 循环读取输入的元素并添加到列表中  
        for (int i = 0; i < count; i++) {  
            System.out.print("请输入第 " + (i + 1) + " 个元素: ");  
            String element = scanner.nextLine();  
            list.add(element);  
        }  
  
        // 关闭scanner  
        scanner.close();  
  
        // 使用for循环遍历(基于索引)  
        System.out.println("\n遍历方式1(基于索引的for循环):");  
        for (int i = 0; i < list.size(); i++) {  
            System.out.println(list.get(i));  
        }  
  
        // 使用增强型for循环遍历(for-each循环)  
        System.out.println("\n遍历方式2(增强型for循环):");  
        for (String item : list) {  
            System.out.println(item);  
        }  
  
        // 使用Iterator遍历  
        System.out.println("\n遍历方式3(使用Iterator):");  
        Iterator<String> iterator = list.iterator();  
        while (iterator.hasNext()) {  
            String item = iterator.next();  
            System.out.println(item);  
        }  
    }  
}

运行结果如下:

测试代码5:

创建一个图书类:

package listtest.com;
public class Book {  
    private String title;  
    private String author;  
    public String isbn;  
  
    public Book(String title, String author, String isbn) {  
        this.title = title;  
        this.author = author;  
        this.isbn = isbn;  
    }  
  
    public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getAuthor() {
		return author;
	}

	public void setAuthor(String author) {
		this.author = author;
	}

	public String getIsbn() {
		return isbn;
	}

	public void setIsbn(String isbn) {
		this.isbn = isbn;
	}

	@Override  
    public String toString() {  
        return "Book{" +  
                "title='" + title + '\'' +  
                ", author='" + author + '\'' +  
                ", isbn='" + isbn + '\'' +  
                '}';  
    }  
}

创建一个图书馆类:

package listtest.com;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;  
  
public class LibrarySystem {  
    private List<Book> books;  
  
    public LibrarySystem() {  
        this.books = new ArrayList<>();  
    }  
  
    // 添加图书  
    public void addBook(Book book) {  
        books.add(book);  
    }  
  
    public boolean removeBook(String isbn) {  
        Iterator<Book> iterator = books.iterator();  
        while (iterator.hasNext()) {  
            Book book = iterator.next();  
            if (book.isbn.equals(isbn)) {  
                iterator.remove(); // 使用Iterator的remove方法删除元素  
                return true;  
            }  
        }  
        return false;  
    }
  
    // 查找图书,根据ISBN号  
    public Book findBook(String isbn) {  
        for (Book book : books) {  
            if (book.isbn.equals(isbn)) {  
                return book;  
            }  
        }  
        return null;  
    }  
  
    // 列出所有图书  
    public void listBooks() {  
        for (Book book : books) {  
            System.out.println(book);  
        }  
    }  
}

 测试类:

package listtest.com;
public class LibrarySystemTest {  
    public static void main(String[] args) {  
        LibrarySystem library = new LibrarySystem();  
  
        // 添加图书  
        library.addBook(new Book("Java编程思想", "Bruce Eckel", "123456789"));  
        library.addBook(new Book("Effective Java", "Joshua Bloch", "987654321"));  
  
        // 列出所有图书  
        System.out.println("当前图书列表:");  
        library.listBooks();  
  
        // 查找图书  
        Book book = library.findBook("987654321");  
        if (book != null) {  
            System.out.println("找到图书:" + book);  
        } else {  
            System.out.println("未找到图书");  
        }  
  
        // 删除图书  
        if (library.removeBook("123456789")) {  
            System.out.println("图书已删除");  
        }  
  
        // 再次列出所有图书  
        System.out.println("删除后的图书列表:");  
        library.listBooks();  
    }  
}

运行结果如下:

 测试代码5:

创建一个内衣类:

package settest.com;
class LadyUnderwearSorter {  
    private String brand;  
    private String size;  
    private String color;  
    private String material;  
    private double price;  
  
    // 构造方法  
    public LadyUnderwearSorter(String brand, String size, String color, String material, double price) {  
        this.brand = brand;  
        this.size = size;  
        this.color = color;  
        this.material = material;  
        this.price = price;  
    }  

    public String getBrand() {  
        return brand;  
    }  
  
    public String getSize() {  
        return size;  
    }  
  
    public String getColor() {  
        return color;  
    }  
  
    public String getMaterial() {  
        return material;  
    }  
  
    public double getPrice() {  
        return price;  
    }  
  
    // toString 方法,打印信息  
    @Override  
    public String toString() {  
        return "LadyUnderwear{" +  
                "brand='" + brand + '\'' +  
                ", size='" + size + '\'' +  
                ", color='" + color + '\'' +  
                ", material='" + material + '\'' +  
                ", price=" + price +  
                '}';  
    }  
}  

测试代码:

package settest.com;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

public class Test {  

  public static void main(String[] args) {  
      // 创建内衣对象  
      List<LadyUnderwearSorter> underwears = Arrays.asList(  
              new LadyUnderwearSorter("品牌A", "S", "红色", "棉", 50.0),  
              new LadyUnderwearSorter("品牌B", "M", "蓝色", "丝绸", 100.0),  
              new LadyUnderwearSorter("品牌C", "L", "黑色", "蕾丝", 75.0),  
              new LadyUnderwearSorter("品牌A", "XL", "白色", "棉", 60.0)  
      );  

      // 使用Comparator根据价格排序  
      underwears.sort(Comparator.comparingDouble(LadyUnderwearSorter::getPrice));  

      // 打印排序后的内衣列表  
      underwears.forEach(System.out::println);  
  }  
}

运行结果如下:

​​​​​​​

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值