java开始到熟悉103-104

本次内容:linkedlist()

此次是承接上次arraylist(),自己实现linkedlist()(内容较少)


  1 package list;
2 /**
3 * 自定义linkedlist类
4 * @author acer
5 *
6 */
7 public class mylinkedlist {
8 private Node first;
9 private Node last;
10 private int size;
11 public void add(Object obj)
12 {
13 Node n=new Node();
14 if(first==null)
15 {
16 n.setPrevious(null);
17 n.setObj(obj);
18 n.setNext(null);
19 first=n;
20 last=n;
21 }
22 else
23 {
24 n.setPrevious(last);
25 n.setObj(obj);
26 n.setNext(null);
27 last.setNext(n);
28 last=n;
29 }
30 size++;
31 }
32 public void add(int index,Object obj)
33 {
34 Node temp=null;
35 Node newNode=new Node();
36 newNode.setObj(obj);
37 if(first!=null)
38 {
39 temp=first;
40 for(int i=0;i<index;i++)
41 {
42 temp=temp.getNext();
43 }
44 }
45 newNode.setPrevious(temp.getPrevious());
46 temp.getPrevious().setNext(newNode);
47 newNode.setNext(temp);
48 temp.setPrevious(newNode);
49 size++;
50
51 }
52 public Object get(int index)
53 {
54 rangeCheck(index);
55 Node temp=null;
56 if(first!=null)
57 {
58 temp=first;
59 for(int i=0;i<index;i++)
60 {
61 temp=temp.getNext();
62 }
63 }
64 return temp.getObj();
65 }
66 public void removefirst()
67 {
68 Node temp=null;
69 temp=first;
70 temp=temp.getNext();
71 temp.setPrevious(null);
72 first.setNext(null);
73 first=temp;
74 }
75 public void remove(int index)
76 {
77 rangeCheck(index);
78 Node temp=null;
79 if(first!=null)
80 {
81 temp=first;
82 for(int i=0;i<index;i++)
83 {
84 temp=temp.getNext();
85 }
86 }
87 if(temp!=null)
88 {
89 Node pre=temp.getPrevious();
90 Node ne=temp.getNext();
91 pre.setNext(ne);
92 ne.setPrevious(pre);
93 size--;
94 }
95
96 }
97 public void rangeCheck(int index)
98 {
99 if(index<0||index>=size)
100 {
101 try {
102 throw new Exception();
103 } catch (Exception e) {
104 e.printStackTrace();
105 }
106 }
107 }
108 public int size()
109 {
110 return size;
111 }
112 public static void main(String[] args)
113 {
114 mylinkedlist list=new mylinkedlist();
115 list.add("aaa");
116 list.add("bbb");
117 list.add("ccc");
118 list.add("ddd");
119 System.out.println(list.size());
120 System.out.println(list.get(1));
121 list.removefirst();
122 System.out.println(list.get(0));
123 }
124 }
125
126
127 class Node
128 {
129 private Node previous;
130 private Object obj;
131 private Node next;
132 public Node()
133 {
134 }
135 public Node(Node previous, Object obj, Node next) {
136 super();
137 this.previous = previous;
138 this.obj = obj;
139 this.next = next;
140 }
141 public Node getPrevious() {
142 return previous;
143 }
144 public void setPrevious(Node previous) {
145 this.previous = previous;
146 }
147 public Object getObj() {
148 return obj;
149 }
150 public void setObj(Object obj) {
151 this.obj = obj;
152 }
153 public Node getNext() {
154 return next;
155 }
156 public void setNext(Node next) {
157 this.next = next;
158 }
159 }

运行结果:

4
bbb
bbb

时间: 2024-10-10 04:19:14

java开始到熟悉103-104的相关文章

java开始到熟悉66-69

本次内容:DateFormat类 1.DateFormat类 1 package array; 2 /** 3 * 时间和字符串之间的转化 4 */ 5 import java.text.DateFormat; 6 import java.text.ParseException; 7 import java.text.SimpleDateFormat; 8 import java.util.Date; 9 10 public class dateformat { 11 public static

java开始到熟悉70-71

本次内容:file类 1 package array; 2 /** 3 * file类 4 */ 5 import java.io.File; 6 import java.io.IOException; 7 8 public class file { 9 public static void main(String[] args) 10 { 11 File f1=new File("d:/tu/11.png");//文件路径名 12 File f2=new File("d:/

java开始到熟悉60

本次主题:多维数组 1,多维数组的初始话有三种:默认初始化.静态初始化.动态初始化. 这里只讲解静态初始化: 这里以二位数组为例,实际应用中,一维用得最多,二维次之,三维以及三维以上几乎很少使用,而且也比较复杂. 1 package array; 2 3 public class multiarray { 4 public static void main(String[] args){ 5 int[][] a={ 6 {1,2}, 7 {3,4,0,9}, 8 {5,6,7} 9 }; 10

java开始到熟悉61

本此主题:多维数组----矩阵运算 矩阵的运算规则是将对应位置的值进行运算,如上图所示. 1 package array; 2 3 public class Matrix { 4 /** 5 * 打印矩阵 6 * @param c 7 */ 8 public static void print(int[][] c) 9 { 10 int i,j; 11 for(i=0;i<c.length;i++) 12 { 13 for(j=0;j<c.length;j++) 14 { 15 System.

java开始到熟悉72-76

本次内容:异常机制 1.为什么需要异常 2.异常 3.error类 4.exception类 5.exception类中的unchecked exception 举例: 6.常用异常处理方法 a.try 注意:一个try语句块至少得带一个finally语句块或catch语句块 1 package array; 2 /** 3 * exception 4 * @author acer 5 * 6 */ 7 public class exception { 8 public static void

java开始到熟悉105-107

1,HashMap基本用法 1 package list; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 /** 7 * 测试map的基本用法 8 * @author acer 9 * 10 */ 11 public class Hashmap { 12 public static void main(String[] args) 13 { 14 Map map=new HashMap(); 15 System.out.pri

java开始到熟悉63-65

本次内容:java常用类 1.包装类 1 package array; 2 3 public class wrapperclass { 4 public static void main(String[] args) 5 { 6 Integer i=new Integer(100); 7 System.out.println(i); 8 System.out.println(Integer.MAX_VALUE); 9 System.out.println(Integer.MIN_VALUE);

java开始到熟悉62

(说明:昨天网络出现了问题导致昨天的没有按时上传,这篇算是昨天的,今天晚上照常上传今天的内容) 本次主题:数组拷贝.排序.二分法 1.数组拷贝 a.java.lang中System 类包含一些有用的类字段和方法.它不能被实例化. 在 System 类提供的设施中,有标准输入.标准输出和错误输出流:对外部定义的属性和环境变量的访问:加载文件和库的方法:还有快速复制数组的一部分的实用方法. public static void arraycopy(Object src, int srcPos, Ob

java开始到熟悉100-102

本次内容:arraylist() 1. 1 package list; 2 3 import java.util.ArrayList; 4 import java.util.Date; 5 import java.util.List; 6 7 /** 8 * 测试list的基本方法 9 * @author acer 10 * 11 */ 12 public class arraylist { 13 public static void main(String[] args) 14 { 15 Li