数组
一、初始化
int[] arr = new int[3];//{0,0,0}
int[] arr = {1,2,3};
int[] arr = new int[]{1,2,3};
int[] arr;
//arr = {1,2,3};error,此方法只有在声明的同时初始化
//arr = new int[]{1,2,3};正确
arr = new int[3];
二、添加数据(基本不用)
三、删除数据(基本不用)
四、修改数据
int[] arr = {1,2,3};
arr[1] = 8888;//可以根据下标修改数据
五、查询数据
System.out.println(arr[2]);
for (int i : arr) {
System.out.println(i);
}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
六、 List转换为Array
Integer[] arr = list.toArray(new Integer[list.size()]);
for (Integer integer : c) {
System.out.println(integer);
}
Collection
-
初始化
Collection c = new ArrayList();
-
添加数据
-
删除数据(基本不用)
-
修改数据(基本不用)
-
查询数据
c.add(1);
c.add(11);
c.add(11);
c.add(1111);
// remove方法也是根据元素equals比较的结果进行删除的。一个一个删除
c.remove(11);
if(!c.isEmpty()){
c.clear();
}
System.out.println(c.toString());
for (Object o : c) {
System.out.println(o);
}
Iterator it = c.iterator();
while(it.hasNext()){
Integer i = (Integer) it.next();
System.out.println(i);
if(i == 11){
it.remove();
}
} -
集合转换为数组
Collection<Integer> c = new ArrayList<Integer>();
c.add(1);
c.add(11);
c.add(1111);
Integer[] arr = c.toArray(new Integer[c.size()]);
System.out.println(Arrays.toString(arr));
List
一、初始化
List<Integer> c = new ArrayList<Integer>();
二、添加数据
三、删除数据(基本不用)
四、修改数据(基本不用)
c.add(1);
c.add(11);
c.add(1111);
if(!c.isEmpty()){
c.clear();
}
c.add(0,44);
Integer i = c.remove(1);
System.out.println(i);
Integer i = c.set(0,55);
System.out.println(i);
五、查询数据(可以通过下标获取数据,修改数据,基本不用)
for(int i=0;i<list.size();i++){
str = list.get(i);
System.out.println(str);
}
for (Integer integer : c) {
System.out.println(integer);
}
Iterator it = c.iterator();
while(it.hasNext()){
Integer i = (Integer) it.next();
if(i == 11){
it.remove();
}
}
System.out.println(c.toString());
六、 Array转换为List
Integer[] arr = c.toArray(new Integer[c.size()]);
List<Integer> list = Arrays.asList(arr);
/*对集合元素操作就是对原数组对应元素的操作,不可以直接添加元素,这会导致原数组扩容,而
* 如果扩容就不能表示原数组,所以这样的操作不受支持。
*/
list.set(1,33);
//list.add(22);
List<Integer> list2 = new ArrayList<Integer>(list) ;
list2.add(22);
System.out.println(list.toString());
System.out.println(list2.toString());
七、子集
List<Integer> list = c.subList(0,2);
for (int i=0;i<list.size();i++) {
list.set(i,list.get(i)*10);
}
八、排序
-
通过Collections工具类排序
Collections.sort(list);
-
集合中的元素实现comparable接口,自定义大小
public class Point implements Comparable<Point>{
private int x;
private int y;
public Point(int x, int y) {
super();
this.x = x;
this.y = y;
}
/**
* 实现Comparable接口后必须重写方法compareTo该方法的作用是定义当前对象this与参数对象o之间
* 比较大小的规则。
* 返回值不关注具体取值,只关注取值范围:
* 当返回值>0:当前对象this大于参数对象o(this>o)
* 当返回值<0:this<o
* 当返回值=0:this==o
*/
public int compareTo(Point o) {
int len = this.x*this.x+this.y*this.y; //自定义的
int olen = o.x*o.x+o.y*o.y;
return len-olen;
}
}再通过Collections.sort(list)排序。
-
Collections.sort(list,Comparator)方法中写一个比较方法
/* 使用该方法时,sort不要求集合元素必须实现
* Comparable接口了(因为不用元素自身的比较规则)
*/
Collections.sort(list,new Comparator<String>(){
public int compare(String o1, String o2) {
return o1.length()-o2.length();
}
});与File中的一个过滤方法作比较
File dir = new File(".");
/*
* 获取当前目录中的所有文件
*/
File[] subs = dir.listFiles(new FileFilter(){
public boolean accept(File file) {
String name = file.getName();
System.out.println("正在过滤:"+name);
return file.isFile();
}
});
for(File sub : subs){
System.out.println(sub.getName());
}
Set(略)
Map
一、初始化
Map<String,Integer> map = new HsahMap<String,Integer>();
二、添加数据
三、删除数据(基本不用)
四、修改数据(基本不用)
map.put("语文", 99);
map.put("数学", 98);
map.put("英语", 99);
Integer i = map.remove("语文");
Integer d = map.put("语文", 100);
五、查询数据
Integer d = map.get("语文");
Set<String> key = map.keySet();
for (String s : key) {
System.out.println(s);
}
Set<Map.Entry<String,Integer>> entrySet = map.entrySet();
for (Map.Entry<String, Integer> entry : entrySet) {
String k = entry.getKey();
Integer v = entry.getValue();
System.out.println(k+":"+v);
}
Collection<Integer> vaules = (List<Integer>) map.values();
System.out.println(vaules.toString());