1.length属性是针对数组而言的
public static void testArr() {
// 一维数组
int[] array = new int[7];
System.out.println(array.length); //7
// 二维数据
int[][] array2 = new int[5][7];
System.out.println(array2.length); //这里输出的是行数 5
System.out.println(array2[1].length); //这里输出的是列数 7
}
2.length() 是字符串的方法
这里是利用字符串求水仙花数的一个例子
//水仙花数字
public static void func(String str) {
char[] strs=str.toCharArray(); //把字符串转换成字符数组
int []arr=new int[str.length()];//这里使用的是字符串的length()方法,返回的是字符串的长度包括空格
for(int i=0;i<arr.length;i++) {
arr[i]=Integer.parseInt(strs[i]+"");
}
if(Integer.parseInt(str)==arr[0]*arr[0]*arr[0]+arr[1]*arr[1]*arr[1]+arr[2]*arr[2]*arr[2]) {
System.out.println("方法二"+Integer.parseInt(str));
}
}
3.size()是针对泛型集合的,查看泛型中有多少元素
下面是集合类的演示
public static void collEctionTest(){ List<String>list = new ArrayList<String>(); List<String>list2 = new LinkedList<String>(); Map<Comparable, String> map=new HashMap<Comparable, String>(); Set<Comparable> set=new HashSet<Comparable>(); list.add("保护环境"); list.add("爱护地球"); list2.add("一方有难"); list2.add("八方支援"); map.put(1, "syw"); map.put(2, "加油"); map.put(3, "努力"); map.put("要", "努力"); set.add(1); set.add("234"); set.add("syw"); set.add('a'); System.out.println("ArrayList元素数:"+list.size()); //2 System.out.println("LinkedList元素数:"+list2.size()); //2 System.out.println("HashMap元素数:"+map.size()); //4 System.out.println("HashSet元素数:"+set.size()); //3 } |
4.反转
4.1数组反转(注意:数组反转是没有reverse方法的)
//数组反转 public static void arrReverse(int []arr) { int []arrRes=new int[arr.length]; for(int i=0;i<arr.length;i++) { arrRes[i]=arr[arr.length-1-i]; } for (int i : arrRes) { System.out.println(i); } } |
4.2集合反转(可以使用Collections类的反转方法)
public static void collReverse() { ArrayList<String> arrayList = new ArrayList<String>(); arrayList.add("A"); arrayList.add("B"); arrayList.add("C"); arrayList.add("D"); arrayList.add("E"); System.out.println("反转前排序: " + arrayList); Collections.reverse(arrayList); System.out.println("反转后排序: " + arrayList); } |
5.数组逆序
方式一:
public void arrayReverse2(int[] originArray) { reverseArray = new int[length]; for (int i = 0; i < length; i++) { reverseArray[i] = originArray[length - i - 1]; } } |
方法二:
public void arrayReverse1() { reverseArray = new int[length]; ArrayList arraylist = new ArrayList(); for (int i = 0; i < length; i++) { arraylist.add(originArray[i]); //存放元素 } Collections.reverse(arraylist); //使用方法进行逆序 //完成逆序后,可以保存到新数组reverseArray for (int i = 0; i < length; i++) { reverseArray[i] = (int) arraylist.get(i); } } |
方法三:
public void arrayReverse3() { int temp = 0; for (int i = 0; i < length / 2; i++) { temp = originArray[i]; originArray[i] = originArray[length - i - 1]; originArray[length - i - 1] = temp; } } |
6 i++和++i和i=i+1
int i=1;
System.out.println(i+1); //此时输出的值为2
int j=1;
System.out.println(j++); //此时输出的值为1,这个表达式结束之后j才变成2
System.out.println(j); //此时输出的值为2
int k=1;
System.out.println(++k); //此时输出的值为2
7 直接输出List,Set,Map的注意事项
如果list,set或map中存放的是基本数据类型,则可以直接输出,如果是实体类,则需要实体类重写toString方法。
//list集合(有序,可重复),索引从0开始
//ArrayList
// 默认的范型是Object类型的,素以可以添加不同种类型的变量
ArrayList<Object> lists = new ArrayList<>();
lists.add("syw");
lists.add(2);
lists.add(3.0f);
System.out.println(lists+":"+lists.get(0)); //基本类型可以直接输出
//如果传入的是实体类,则需要该实体类重写toString()方法才能正常输出
ArrayList<Teacher> list2 = new ArrayList<>();
list2.add(new Teacher("sun",23));
list2.add(new Teacher("yang",22));
list2.add(new Teacher("wei",24));
System.out.println(list2+":"+list2.get(0));
//LinkedList
LinkedList<Object> list3 = new LinkedList<>();
list3.add("123");
list3.add(456);
list3.add(6.f);
System.out.println(list3+":"+list3.get(0));
//如果传入的是实体类,则需要该实体类重写toString()方法才能正常输出
LinkedList<Teacher> list4= new LinkedList<>();
list4.add(new Teacher("li",12));
list4.add(new Teacher("meng",21));
list4.add(new Teacher("yao",23));
System.out.println(list4+":"+list4.get(0));
//set集合(无序(输出的顺序和输入的顺序可能不一致),不可重复)
//HashSet
HashSet<Object> sets = new HashSet<>();
sets.add("syw");
sets.add("lmy");
sets.add(999);
System.out.println(sets); //因为set无序,没法确定索引的到底是哪个,所以不能通过get索引查看
HashSet<Teacher> set2 = new HashSet<>();
set2.add(new Teacher("lmy",22));
set2.add(new Teacher("syw",24));
set2.add(new Teacher("999",999));
System.out.println(set2);
//TreeSet:有序的set(注意TreeSet要求添加的数据类型必须一致)
TreeSet<Object> set3 = new TreeSet<>();
set3.add(123);
set3.add(345);
set3.add(222);
//set3.add("syw"); ,此处不能添加字符串,因为添加数据的类型需要一致
System.out.println(set3); //基本类型默认会按照从小到大的顺序进行自动排序
TreeSet<Teacher> set4 = new TreeSet<>();
//注意:如果存放实体类,需要实现Comparable<Teacher>排序方法,重写compareTo接口,否则会报错
set4.add(new Teacher("syw",123));
set4.add(new Teacher("lmy",108));
set4.add(new Teacher("kkk",876));
System.out.println(set4);
//Map集合
// HashMap默认的是键和值都为Object类型,也就是键和值都可以为任意类型包括null
HashMap<Object, Object> map1 = new HashMap<>();
map1.put("syw","lmy");
map1.put("s",1);
map1.put(9,"l");
map1.put("hh",new Teacher("sdf",12));
map1.put(null,123);
map1.put(123,null);
System.out.println(map1+":"+map1.get(null));
//TreeMap(有序:按照键进行排序),需要重写比较方法,之后还要判断比较的键是否为null
TreeMap<String, Object> map2 = new TreeMap<>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if(o1==null){ //如果不判断是否为空,则键无法使用null
return 1;
}else{
return o1.charAt(0)-o2.charAt(0);
}
}
});
map2.put("syw","lmy");
map2.put("s",1);
map2.put("9","l");
map2.put("hh",new Teacher("sdf",12));
map2.put("null",123);
System.out.println(map2+":"+map2.get("null"));
全部评论