java数组和数据库_基础知识:Java数组和集合

数组

Java中的数组是一个类

Java中数组作为一个特殊的类,也是不同于C++的一点表现,既然Java中的数组是一个类,那么字符串数组和整型数组的类名是一样的吗?答案是否定的,整型数组的类名是[I,而字符串数组的类名是[Ljava.lang.String。

存储数组中的元素

另外Java中数组操作基本数据类型和引用类型的方式各不相同,在处理基本数据类型的时候,数组保存的是变量的值,未指定时是0,在处理引用类型时,数组保存的是对象的引用,未指定时是null

访问数组中的元素

既然Java中的数组是一个类,那么访问数组中的元素就是通过成员变量的形式来访问的。

拷贝数组中的元素

数组拷贝要用到System.arraycopy()

二维数组的长度不固定

举个例子就明白了

int[][] arr=new int[3][];//不用指定第二个维度的长度

arr[0]=new int[]{4};

arr[1]=new int[]{5,6};

arr[2]=new int[]{7,8,9};

集合

Java中有哪些集合

Java中的集合包括List、Set、Map三大类,它们的区别是:List是有序存放的,允许重复;Set是无序存放的,不允许重复,Map是存放键值对的

所有的集合实现类,都只能存放对象,如果要存放基本数据类型,那么必须要使用其包装类

Java集合中如何遍历

Java的集合类都是可迭代的,它们都实现了Iterator接口中的方法,通过调用集合类的Iterator方法将其转换成一个Iterator接口,通过Iterator.next()实现集合的遍历

比较器:比较两个对象的大小

类实现Comparable接口

如果要按照我们想要的方式比较两个对象的大小,那么这个类就需要实现Comparable接口,这个接口是java.lang包下的,举个例子好说明一下

public class CompareUserTest implements Comparable{

private String name;

private int age;

public CompareUserTest(String name, int age) {

super();

this.name = name;

this.age = age;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public int compareTo(Object o) {

return this.age-((CompareUserTest)o).getAge();

}

public static void main(String[] args) {

CompareUserTest user1=new CompareUserTest("Tong", 24);

CompareUserTest user2=new CompareUserTest("Song", 25);

if (user1.compareTo(user2)>0) {

System.out.println("Tong is older than Song");

}else if (user1.compareTo(user2)<0) {

System.out.println("Tong is younger than Song");

}else {

System.out.println("Tong and Song is the same age");

}

}

}

自己创建一个比较器类继承Comparator

但如果我们按照我们自己的方式对数组进行排序,那么我们就需要实现一个比较器类继承Comparator,这个是在java.util包下的。然后把这个比较器传给sort,比如Array.sort或者Collection.sort都行,Collections.sort(list,new UserComparetor());

class User {

private String name;

private int age;

public User(String name, int age) {

super();

this.name = name;

this.age = age;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

class UserComparetor implements Comparator {

@Override

public int compare(Object o1, Object o2) {

// TODO Auto-generated method stub

User user1 = (User) o1;

User user2 = (User) o2;

return user1.getAge() - user2.getAge();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值