Java 数组技巧

0.  声明一个数组(Declare an array)

  1. String[] aArray = new String[5];  
  2. String[] bArray = {"a","b","c""d""e"};  
  3. String[] cArray = new String[]{"a","b","c","d","e"};  
1.  在Java中输出一个数组(Print an array in Java)
  1. int[] intArray = { 1, 2, 3, 4, 5 };  
  2. String intArrayString = Arrays.toString(intArray);  
  3.    
  4. // print directly will print reference value  
  5. System.out.println(intArray);  
  6. // [I@7150bd4d  
  7.    
  8. System.out.println(intArrayString);  
  9. // [1, 2, 3, 4, 5]  
2. 从数组中创建数组列表(Create an ArrayList from an array
  1. String[] stringArray = { "a""b""c""d""e" };  
  2. ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));  
  3. System.out.println(arrayList);  
  4. // [a, b, c, d, e]  
3. 检查数组中是否包含特定值(Check if an array contains a certain value)
  1. String[] stringArray = { "a""b""c""d""e" };  
  2. boolean b = Arrays.asList(stringArray).contains("a");  
  3. System.out.println(b);  
  4. // true  
4. 连接两个数组( Concatenate two arrays)
  1. int[] intArray = { 1, 2, 3, 4, 5 };  
  2. int[] intArray2 = { 6, 7, 8, 9, 10 };  
  3. // Apache Commons Lang library  
  4. int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);  
5. 声明一个数组内链(Declare an array inline )
  1. method(new String[]{"a""b""c""d""e"});  

6. 将数组元素加入到一个独立的字符串中(Joins the elements of the provided array into a single String)

  1. // containing the provided list of elements  
  2. // Apache common lang  
  3. String j = StringUtils.join(new String[] { "a""b""c" }, ", ");  
  4. System.out.println(j);  
  5. // a, b, c  
7. 将数组列表转换成一个数组 (Covnert an ArrayList to an array)
  1. String[] stringArray = { "a""b""c""d""e" };  
  2. ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));  
  3. String[] stringArr = new String[arrayList.size()];  
  4. arrayList.toArray(stringArr);  
  5. for (String s : stringArr)  
  6.     System.out.println(s);  
8. 将数组转换成一个集合(Convert an array to a set)
  1. Set<String> set = new HashSet<String>(Arrays.asList(stringArray));  
  2. System.out.println(set);  
  3. //[d, e, b, c, a]  
9. 反向数组(Reverse an array)
  1. int[] intArray = { 1, 2, 3, 4, 5 };  
  2. ArrayUtils.reverse(intArray);  
  3. System.out.println(Arrays.toString(intArray));  
  4. //[5, 4, 3, 2, 1]  
10. 删除数组元素(Remove element of an array)
  1. int[] intArray = { 1, 2, 3, 4, 5 };  
  2. int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array  
  3. System.out.println(Arrays.toString(removed));  
One more – convert int to byte array
  1. byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();  
  2.    
  3. for (byte t : bytes) {  
  4.    System.out.format("0x%x ", t);  

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
/* * 基于数组的向量实现 */ package dsa; public class Vector_Array implements Vector { private final int N = 1024;//数组的容量 private int n = 0;//向量的实际规模 private Object[] A;//对象数组 //构造函数 public Vector_Array() { A = new Object[N]; n = 0; } //返回向量中元素数目 public int getSize() { return n; } //判断向量是否为空 public boolean isEmpty() { return (0 == n) ? true : false; } //取秩为r的元素 public Object getAtRank(int r)//O(1) throws ExceptionBoundaryViolation { if (0 > r || r >= n) throw new ExceptionBoundaryViolation("意外:秩越界"); return A[r]; } //将秩为r的元素替换为obj public Object replaceAtRank(int r, Object obj) throws ExceptionBoundaryViolation { if (0 > r || r >= n) throw new ExceptionBoundaryViolation("意外:秩越界"); Object bak = A[r]; A[r] = obj; return bak; } //插入obj,作为秩为r的元素;返回该元素 public Object insertAtRank(int r, Object obj) throws ExceptionBoundaryViolation { if (0 > r || r > n) throw new ExceptionBoundaryViolation("意外:秩越界"); if (n >= N) throw new ExceptionBoundaryViolation("意外:数组溢出"); for (int i=n; i>r; i--) A[i] = A[i-1];//后续元素顺次后移 A[r] = obj;//插入 n++;//更新当前规模 return obj; } //删除秩为r的元素 public Object removeAtRank(int r) throws ExceptionBoundaryViolation { if (0 > r || r >= n) throw new ExceptionBoundaryViolation("意外:秩越界"); Object bak = A[r]; for (int i=r; i<n; i++) A[i] = A[i+1];//后续元素顺次前移 n--;//更新当前规模 return bak; } }

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值