为什么打印结果是一一对应的呢例如a-----B
Set<String> keys = map.keySet();
for(String key:keys){
String v1 = map.get(key);
System.out.println(key+" ---- "+v1);
}
为什么打印结果是一一对应的呢
问题:老师,这super(name)的作用是什么,后面调用this.getName()是调用当前对象的名称?
那怎么配置服务器端收到请求返回/favicon.ico图片呢?
老师在实例化对象时,引用类型使用接口或者对象的父类,和使用对象本身的类,有什么不同,这样做有什么作用?
求解释一下。
老师,就是服务端和客户端创建好后运行,就运行不出来,后来检查了一下发现是创建客户端时pw.println写成那个pw.print了,当时感觉print和println差不多,只是换行不换行的问题,没有改就运行不出来。
改了之后就运行出来了,这是为什么?
老师,这个list不是有序,可重复么?????????
老师,要是Set定义容器的没有使用泛型,该如何遍历元素呢?
老师这个标题的通配符的"通"字是统治的"统"吗?
hashset中的链表是单向链表么?!!!!!!!!!
老师,那个服务器端就是本机,创建客户端时的参数有一个是本机的ip地址,那是不是所有本机的ip地址都是
127.0.0.1呢
删除元素中这里的temp要存储删除元素的前一个的节点对象,这里的for循环有点不理解, index-1是删除元素的前一个索引,然而temp = temp.next不是又存储了删除元素的节点对象地址吗
老师,
new InetSocketAddress("www.baidu.com",80)这个创建那个InetSocketAddress对象,最后输出的是百度域名对应的IP。我不明白这个端口有什么作用,没有端口,输出的也是百度的IP吧
老师:
您好,我的代码和运行结果如下:
package com.bjsxt; public class MyDoublyLinkedList<E> implements MyList<E> { /** * 定义双向链表中的节点对象 */ class Node<E> { E item; //记录元素 Node<E> prev; //记录前一个节点对象 Node<E> next; //记录下一个节点对象 Node(Node<E> prev,E item, Node<E> next) { this.prev = prev; this.item = item; this.prev = next; } } private Node head; //记录头节点 private Node tail; //记录尾节点 private int size; //记录元素个数 /** * 向双向链表中添加元素 */ public void add(E element) { this.linkLast(element); } /** * 将节点对象添加到双向链表中的尾部 */ private void linkLast(E element) { //获取尾节点 Node t = this.tail; //创建节点对象 Node<E> node = new Node<>(t,element,null); //将新节点定义为尾节点 this.tail = node; if(t == null) { this.head = node; }else { t.next = node; } this.size ++; } /** * 根据指定位置获取元素 */ public E get(int index){ //对index进行合法性校验 this.checkIndex(index); //根据位置查找节点对象 Node<E> node = this.getNode(index); return node.item; } /** * 校验index的合法性 */ private void checkIndex(int index) { if(!(index >= 0 && index < this.size)) { throw new IndexOutOfBoundsException("index:"+index+"Size:"+size); } } /** * 根据位置获取指定节点对象 */ private Node getNode(int index) { //判断当前位置距离头或尾哪个更近些 if (index < (this.size) >> 1){ Node node = this.head; for(int i=0; i<index; i++) { node = node.next; } return node; }else{ Node node = this.tail; for(int i = this.size-1;i>index;i--) { node = node.prev; } return node; } } /** * 返回元素的个数 */ public int size() { return this.size; } /** * 根据指定位置删除元素 */ public E remove(int index) { //对index进行合法校验 this.checkIndex(index); //根据指定位置获取节点对象 Node<E> node = this.getNode(index); //获取节点对象中的元素 E item = node.item; //判断节点是否为头节点 if(node.prev == null) { this.head = node.next; }else { //完成当前节点直接前驱节点与当前节点的直接后继节点的挂接 node.prev.next = node.next; } //判断节点是否为尾节点 if(node.next == null) { this.tail = node.prev; }else{ node.next.prev = node.prev; } //当前节点断掉与它直接前驱节点的连接 node.prev = null; //当前节点断掉与它直接后继节点的连接 node.next = null; node.item = null; //记录元素个数 this.size--; return item; } public static void main(String[] args) { MyList<String> myList = new MyDoublyLinkedList<>(); myList.add("a"); myList.add("b"); myList.add("c"); myList.add("d"); myList.add("e"); System.out.println(myList.size()); System.out.println(myList.remove(0)); for(int i=0;i<myList.size();i++) { System.out.println(myList.get(i)); } } }
运行结果是:
5
a
b
c
Exception in thread "main" java.lang.NullPointerException
at com.bjsxt.MyDoublyLinkedList.get(MyDoublyLinkedList.java:59)
at com.bjsxt.MyDoublyLinkedList.main(MyDoublyLinkedList.java:150)
老师,画红色部分是什么意思,还有括号里那些数字是什么意思?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637