在数据结构中存储对象
Posted 独立小桥风满袖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在数据结构中存储对象相关的知识,希望对你有一定的参考价值。
数组列表
在java.util包中有一个类可以实现数组所有的功能,而且没有数组的大小限制,它就是ArrayList。
数组列表是一个存储同一类对象或具有共同超类的对象的数据结构。在程序运行时,列表可以根据需要调整大小。
创建数组列表是最简单的方法是调用其不带参数的构造函数。
ArrayList servants = new ArrayList();
在创建数组列表时,可以指定一个初始的容量(大小),这为列表能存放多少个元素提供了指导。该容量作为一个整型参数传递给构造函数
ArrayList servants = new ArrayList(30);
ArrayList<String> servants = new ArrayList<String>();
1 import java.awt.*; 2 import java.util.*; 3 4 5 public class Battlepoint { 6 ArrayList<Point> targets = new ArrayList<Point>(); 7 8 public Battlepoint() { 9 //create targets to shoot at 10 createTargets(); 11 //display the game map 12 showMap(); 13 //shoot at three points 14 shoot(7, 4); 15 shoot(3, 3); 16 shoot(9, 2); 17 //display the map again 18 showMap(); 19 } 20 21 private void showMap() { 22 System.out.println("\\n 1 2 3 4 5 6 7 8 9"); 23 for (int column = 1; column < 10; column++) { 24 for (int row = 1; row < 10; row++) { 25 if (row == 1) { 26 System.out.print(column + " "); 27 } 28 System.out.print(" "); 29 Point cell = new Point(row, column); 30 if (targets.indexOf(cell) > -1) { 31 //a target is at this position 32 System.out.print("X"); 33 } else { 34 //no target is here 35 System.out.print("."); 36 } 37 System.out.print(" "); 38 } 39 System.out.println(); 40 } 41 System.out.println(); 42 } 43 44 private void createTargets() { 45 Point p1 = new Point(5, 9); 46 targets.add(p1); 47 Point p2 = new Point(4, 5); 48 targets.add(p2); 49 Point p3 = new Point(9, 2); 50 targets.add(p3); 51 } 52 53 private void shoot(int x, int y) { 54 Point shot = new Point(x, y); 55 System.out.print("Firing at (" + x + "," + y + ")..."); 56 if (targets.indexOf(shot) > -1) { 57 System.out.println("you sank my battlepoint!"); 58 targets.remove(shot); 59 } else { 60 System.out.println("miss."); 61 } 62 } 63 64 public static void main(String[] arguments) { 65 new Battlepoint(); 66 } 67 }
哈希映射
哈希映射是Java中的一种数据结构,它使用对象来检索另外一个对象。第一个对象是键,第二个对象是值。它们是作为java.util包中HashMap类来实现的。
与数组列表一样,可以调用size()方法来获取这一信息,该方法返回一个整数。
1 import java.awt.*; 2 import java.util.*; 3 4 public class FontMapper { 5 6 public FontMapper() { 7 Font courier = new Font("Courier New", Font.PLAIN, 6); 8 Font times = new Font("Times New Roman", Font.BOLD, 12); 9 Font verdana = new Font("Verdana", Font.ITALIC, 25); 10 11 HashMap<String, Font> fonts = new HashMap<>(); 12 fonts.put("smallprint", courier); 13 fonts.put("headline", verdana); 14 15 for (Map.Entry<String, Font> entry: fonts.entrySet()) { 16 String key = entry.getKey(); 17 Font value = entry.getValue(); 18 System.out.println(key + ": " + value.getSize() + "-pt " + value.getFontName()); 19 } 20 } 21 22 public static void main(String[] arguments) { 23 new FontMapper(); 24 } 25 26 }
以上是关于在数据结构中存储对象的主要内容,如果未能解决你的问题,请参考以下文章
如何将本地存储中的 JSON 对象添加到 Android Studio 上的片段列表