上海市|java的学习基础( 三 )


l.add(i);

使用\t  l.add(55);\t//在列表最后添加一个元素 , 整个列表多了一个元素
l.add(655);  //在列表下标为6的位置添加一个元素 , 原来6和以后的元素后移
l.set(6555);\t//把列表中下标为6的位置存放的值 , 重新赋值为555
输出实例  System.out.println(l);
//直接输出整个列表得所有元素
for(int i=0;i<l.size();i++) {
//从下标0开始 , 输出列表的所有元素值
System.out.print(l.get(i) + \"\");

4.Map(字典)
定义\t  Mapmap = new HashMap();
//定义键为String类型 , 值为int类型的Map 。
写入\t  for (int i = 0; i < 10; i++) {
//往Map里面添加10个整数
map.put(i + \"\" i+i);

使用\t  map.put(\"11\"111);
//往map里面添加一个键值对 , 如果已经有\"11\"这个键 , 则会替换原来的值
map.get(\"1\");  //获取map里面键为\"1\"的值 , 没有这个键则返回空
输出实例  for(String key : map.keySet()) {
//遍历key , 通过key获取value
System.out.print(key + \"=\" + map.get(key) + \"; \");

for(Entryentry : map.entrySet()) {
//定义一个map的入口 , 通过入口一个个遍历map里面的元素和值
System.out.print(entry.getKey() + \"=\" + entry.getValue() + \"; \");

Hashset
HashSet内部使用的是Hashmap的实现方法 , 这两个类内部保存的数据都是通过哈希值排序的 。 也就是说所有hashCode%size=0的key排在最前 , hashCode%size=1的其次 , 以此类推 。 至于为什么题主你的输出是有序的 , 这是一个巧合 。 首先你Student类的hashCode是id转换成字符串后取哈希值 。 Java中默认字符串哈希值的计算方法是:s[0
31^(n-1) + s[1
31^(n-2) + ... + s[n-1
所以你五个Student对象的哈希值正好是49~53(数字的ascii码)而HashSet默认的大小是16 , 五个哈希值除16取余数正好是1~5 , 所以这五个对象正好是排好序放在HashSet里了 。 想要得到无序的输出 , 只要换一个初始大小就行了 , 例如改成new HashSet(10);
1.substring:字符串子串 。
java里面[不是特殊字符 , 不需要转义 。 但是 , replaceAll的时候 , 用正则去替换的 , 在正则里面 , [是特殊字符 。 所以在正则里面必须使用\\[ 。
2.split分割:甘蔗--节 。
3.json格式:{\"status\":\"0\"\"t\":\"1525782909785\"\"set_cache_time\":\"\"\"data\":[{\"location\":\"澳大利亚\" \"titlecont\":\"IP地址查询\" \"origip\":\"1.1.1.1\" \"origipquery\":\"1.1.1.1\" \"showlamp\":\"1\" \"showLikeShare\":1 \"shareImage\":1 \"ExtendedLocation\":\"\" \"OriginQuery\":\"1.1.1.1\" \"tplt\":\"ip\" \"resourceid\":\"6006\" \"fetchkey\":\"1.1.1.1\" \"appinfo\":\"\" \"role_id\":0 \"disp_type\":0

json层:
4.toString() 。 不管结果是什么 , 都转为字符串
5.计算格式化输出 。 yh=5
假设每一个输出是4个字符 , 最后一行的长度?4*5
所以第一个1的位置应该是:(yh/2)*4