201521123040《Java程序设计》第7周学习总结

1. 本周学习总结

以你喜欢的方式(思维导图或其他)归纳总结集合相关内容。
参考资料:
XMind

2. 书面作业

1.ArrayList代码分析

1.1 解释ArrayList的contains源代码

解释:调用indexof方法,遍历保存数据的elementData数组,如果匹配,则返回数组中的下标

1.2 解释E remove(int index)源代码

解释:删除数组容器中指定位置index上的元素,并返回此元素。

1.3 结合1.1与1.2,回答ArrayList存储数据时需要考虑元素的类型吗?

不需要。因为返回时它会自动进行强制转换为指定类型。

1.4 分析add源代码,回答当内部数组容量不够时,怎么办?

回答:在末尾追加一个,增加数组总数。

1.5 分析private void rangeCheck(int index)源代码,为什么该方法应该声明为private而不声明为public?

因为该方法内部使用,保证index在ArrayList长度范围之内,并在越界时抛出异常。

2.HashSet原理

2.1 将元素加入HashSet(散列集)中,其存储位置如何确定?需要调用那些方法?

使用Map.put方法来将元素加入内部的map中,put方法使用hash方法来确定元素保存位置。

3.ArrayListIntegerStack

题集jmu-Java-05-集合之5-1 ArrayListIntegerStack

3.1 比较自己写的ArrayListIntegerStack与自己在题集jmu-Java-04-面向对象2-进阶-多态、接口与内部类中的题目5-3自定义接口ArrayIntegerStack,有什么不同?(不要出现大段代码)

ArrayListIntegerStack接口采用的是list列表来存储栈元素,ArrayIntegerStack采用的是数组的形式。

3.2 简单描述接口的好处.

(1)简单,规范 (2)易维护,可拓展性 (3)安全,严密

4.Stack and Queue

4.1 编写函数判断一个给定字符串是否是回文,一定要使用栈,但不能使用java的Stack类(具体原因自己搜索)。请粘贴你的代码,类名为Main你的学号。

import java.util.ArrayList;
import java.util.List;
public class StackTest {
	public static void Main201521123040(String[] args) {
	String str = "abcba";
	System.out.println(str + "回文数:" + isPalindrome(str));
	str = "abccba";
	System.out.println(str + "回文数:" + isPalindrome(str));
	str = "123321";
	System.out.println(str + "回文数:" + isPalindrome(str));
	str = "1238887321";
  	System.out.println(str + "回文数:" + isPalindrome(str));
 	}
 public static boolean isPalindrome(String pValue){
    	List<Character>  stack = new ArrayList<Character>();
   	List<Character>  stack2 = new ArrayList<Character>();
   	int haflen = pValue.length()/2;
  	 for(int i=0;i<haflen;i++){
     		stack.add(pValue.charAt(i));
  	 stack2.add(pValue.charAt(pValue.length()-i-1));
  }
boolean bFlag = true;
for(int i=haflen-1;i>=0;i--){
if(stack.remove(i) != stack2.remove(i)){
bFlag = false;
		break;
	}
}
return bFlag;
}
}

4.2 题集jmu-Java-05-集合之5-6 银行业务队列简单模拟。(不要出现大段代码)

统计文字中的单词数量并按单词的字母顺序排序后输出

5.题集jmu-Java-05-集合之5-2 统计文字中的单词数量并按单词的字母顺序排序后输出 (不要出现大段代码)

5.1 实验总结

TreeSet默认是按照键的自然顺序排序。

3. 码云上代码提交记录及PTA实验总结

题目集:jmu-Java-05-集合

3.1. 码云代码提交记录

在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

3.2. PTA实验

posted @ 2017-04-08 20:25  'RosetteNebula  阅读(395)  评论(0编辑  收藏  举报