java编程题目 List容器构造25个点对象(Point)

java编程题目 List容器构造25个点对象(Point),第1张

import java.util.ArrayList

import java.util.HashMap

import java.util.List

import java.util.Map

import java.util.Random

public class Demo {

    static final int SIZE = 25

    public static void main(String[] args) {

        List<Point> list = new ArrayList<>(SIZE)

        Random random = new Random()

        System.out.println("开始生成点对象。。。")

        for (int i = 0 i < SIZE i++) {

            Point p = new Point()

            p.setX(random.nextInt(5))

            p.setY(random.nextInt(5))

            list.add(p)

            System.out.println(p)

        }

        System.out.println("生成点对象结束。。。")

        

        Map<String, Integer> map = new HashMap<>()

        for (Point point : list) {

            String key = point.toString()

            if (map.containsKey(key)) {

                map.put(key, map.get(key) + 1)

            } else {

                map.put(key, 1)

            }

        }

        for (Map.Entry<String, Integer> entry : map.entrySet()) {

            System.out.println("节点:" + entry.getKey() + ",出现次数:" + entry.getValue())

        }

    }

}

class Point {

    private int x

    private int y

    @Override

    public String toString() {

        return "[x=" + x + ", y=" + y + "]"

    }

    public int getX() {

        return x

    }

    public void setX(int x) {

        this.x = x

    }

    public int getY() {

        return y

    }

    public void setY(int y) {

        this.y = y

    }

}

程序在执行list.add(2,"B")的时候就报错,因为还没有存在下标为1的值,而你直接插入下标为2的值。

LinkedList是通过节点直接彼此连接来实现的。每一个节点都包含前一个节点的引用,后一个节点的引用和节点存储的值。当一个新节点插入时,只需要修改其中保持先后关系的节点的引用即可,当删除记录时也一样。这样就带来以下有缺点:

*** 作其中对象的速度快 只需要改变连接,新的节点可以在内存中的任何地方

不能随即访问,虽然存在get()方法,所以这个方法是通过遍历接点来定位的速度慢。

说白了,就是数据结构中的顺序存储和链式存储

(转)

你仔细去看看各个集合的特点吧。都有自己的执行方式的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7977126.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存