参考资料:java
XMind数组
/** * 判断动态数组是否包含元素o */ public boolean contains(Object o) { return indexOf(o) >= 0; } /** * 返回第一个出现的元素o的索引位置 */ public int indexOf(Object o) { if (o == null) {//返回第一个null的索引 for (int i = 0; i < size; i++) if (elementData[i] == null) return i; } else {//返回第一个o的索引 for (int i = 0; i < size; i++) if (o.equals(elementData[i])) return i; } return -1;//若不包含,返回-1 } /** * 返回最后一个出现的元素o的索引位置 */ public int lastIndexOf(Object o) { if (o == null) { for (int i = size - 1; i >= 0; i--) if (elementData[i] == null) return i; } else { for (int i = size - 1; i >= 0; i--) if (o.equals(elementData[i])) return i; } return -1; }
首先调用indexOf(),判断传入的对象是否为空,若是为空,则遍历整个集合的元素,若是集合的某个元素为空,返回该元素的下标。
若是传入对象不为空,则遍历整个集合的元素,若是该元素和集合内某个元素的equals比较结构为true,返回该元素下标。
若是遍历完集合后没有元素存在于集合中就返回-1。最后若是indexOf()方法返回大于0,就说明集合内存在该元素,小于0则不存在函数
/** * 删除指定索引index下的元素,返回被删除的元素 */ public E remove(int index) { RangeCheck(index);//检查索引范围 E oldValue = (E) elementData[index];//被删除的元素 fastRemove(index); return oldValue; }
remove是将index下标的元素去除掉以后,后续元素依次向前移动学习
不须要,arr是一个动态数组(ArrayList),其中能够放进去多种类型的数据设计
新建一个新的数组,长度为内部的一个函数进行计算后返回的结果.以后对a进行copy。copy两次。
第一次copy为从0开始,copy长度为index。
第二次为从index+1开始,copy长度为s-index.其实最终目的就是把中间index下标空出来。再将objcet 复制给 a[index]code
使用private,外部类不能直接访问修改该方法,由于外部类没有修改方法的必要,使用public并非不能够对象
向HashSet中添加一个元素时,HashSet会调用该对象的hashCode()方法获得其hashCode值,而后根据该值决定该对象的存储位置,
可是若是有两个元素经过equals()方法比较返回true,而它们的hashCode()方法返回值不等,HashSet也会将它们存储在不一样的位置blog
ArrayListIntegerStac使用ArrayList存储,能够扩充容量;ArrayIntegerStack使用integer数组,数组容量须要事先设定排序
接口更容易实现扩展功能,java类与类之间只能单继承,类与接口之间能够多实现,不改源码,能够定义多个接口加强功能,之后复写接口中的抽象方法
写小的应用程序看不到接口的优点,写大点的程序就显示出接口的优点继承
public class Main2015121 { public static void main(String[] args) { Stack<Character> stack = new Stack<Character>(); Scanner scanner = new Scanner(System.in); int a = 1; String string = scanner.next(); for (int i = 0; i < string.length(); i++) { stack.push(string.charAt(i)); } for (int j= 0; j < string.length(); j++) { if (stack.pop() != string.charAt(j)) { System.out.println("否"); break; } else { System.out.println("是"); break; } } } }
首先须要针对 A 和 B 业务设计两个循环队列,分别处理两类业务请求;
而后 根据输入序列整数的奇偶性将各个整数分配到这两个队列中。
另外,须要设计针 对两个队列处理过程的流程,这是一个循环。
在循环中,先从 A 队列中输出两个 元素,而后再从 B 队列中输出一个元素。当发现某一个队列中的元素为空时,输 出另外一个队列中的全部元素
注意对队列满、空状况的 判断。
这里能够用String里的split方法分割这个字符串,这样就能够统计单词数和排序了
还能够用Scanner类,Scanner类是一个扫描器,它能够扫描根据咱们的要求字符串,达到想要的结果
面向对象设计大做业-改进
7.1 完善图形界面(说明与上次做业相比增长与修改了些什么)
7.2 使用集合类改进大做业
参考资料:
JTable参考项目
题目集:jmu-Java-05-集合
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 而后搜索并截图